Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 141 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
name: Build and Test

on:
push:
branches:
- main
- 'pr/**'
paths-ignore:
- '**/*.md'
pull_request:
branches:
- main
paths-ignore:
- '**/*.md'

env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: true
VERSION: '5.14.0'

jobs:

build-linux:
name: Build and Test (Linux)
runs-on: ubuntu-22.04 # ubuntu-24.04 does not include mono needed for net4x tests
defaults:
run:
working-directory: Src

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0.x

- name: Display .NET version
run: dotnet --version

- name: Restore dependencies
run: dotnet restore --verbosity quiet

- name: Add AltCover package
run: dotnet add ./MailMergeLib.Tests/MailMergeLib.Tests.csproj package AltCover

- name: Build solution
run: dotnet build MailMergeLib.sln /verbosity:minimal /t:rebuild /p:configuration=release /nowarn:CS1591,CS0618

- name: Run tests
run: dotnet test --framework net10.0 --no-build --configuration release MailMergeLib.sln /p:AltCover=true /p:AltCoverXmlReport="coverage.xml" /p:AltCoverStrongNameKey="../MailMergeLib/MailMergeLib.snk" /p:AltCoverAssemblyExcludeFilter="MailMergeLib.Tests|NUnit3.TestAdapter" /p:AltCoverLineCover="true"

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./MailMergeLib.Tests/coverage.net10.0.xml
flags: net10.0-linux
name: net10.0-linux
token: ${{ secrets.CODECOV_TOKEN }}


build-windows:
name: Build and Test (Windows)
runs-on: windows-2022
defaults:
run:
working-directory: Src

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Configure Git line endings
run: git config --global core.autocrlf true

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0.x

- name: Display .NET version
run: dotnet --version

- name: Restore dependencies
run: dotnet restore --verbosity quiet

- name: Add AltCover package
run: dotnet add .\MailMergeLib.Tests\MailMergeLib.Tests.csproj package AltCover

- name: Determine version
id: version
shell: pwsh
run: |
$version = "${{ env.VERSION }}"
$versionFile = "$version.${{ github.run_number }}"

if ("${{ github.event_name }}" -eq "pull_request") {
$version = "$version-PR${{ github.event.pull_request.number }}"
}

echo "VERSION=$version" >> $env:GITHUB_OUTPUT
echo "FILE_VERSION=$versionFile" >> $env:GITHUB_OUTPUT
echo "Package version: $version"
echo "File version: $versionFile"

- name: Build solution
run: dotnet build MailMergeLib.sln /verbosity:minimal /t:rebuild /p:configuration=release /p:IncludeSymbols=true /p:ContinuousIntegrationBuild=true /p:Version=${{ steps.version.outputs.VERSION }} /p:FileVersion=${{ steps.version.outputs.FILE_VERSION }}

- name: Run tests (net462)
run: dotnet test --framework net462 --no-build --configuration release MailMergeLib.sln /p:AltCover=true /p:AltCoverXmlReport="coverage.xml" /p:AltCoverStrongNameKey="..\MailMergeLib\MailMergeLib.snk" /p:AltCoverAssemblyExcludeFilter="MailMergeLib.Tests|NUnit3.TestAdapter" /p:AltCoverLineCover="true"

- name: Run tests (net10.0)
run: dotnet test --framework net10.0 --no-build --configuration release MailMergeLib.sln /p:AltCover=true /p:AltCoverXmlReport="coverage.xml" /p:AltCoverStrongNameKey="..\MailMergeLib\MailMergeLib.snk" /p:AltCoverAssemblyExcludeFilter="MailMergeLib.Tests|NUnit3.TestAdapter" /p:AltCoverLineCover="true"

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./Src/MailMergeLib.Tests/coverage.net10.0.xml
flags: net10.0-windows
name: net10.0-windows
token: ${{ secrets.CODECOV_TOKEN }}

- name: Pack NuGet packages
run: dotnet pack MailMergeLib.sln --verbosity minimal --no-build --configuration release /p:IncludeSymbols=true /p:SymbolPackageFormat=snupkg /p:PackageOutputPath=${{ github.workspace }}/artifacts /p:ContinuousIntegrationBuild=true

- name: Upload NuGet packages as artifacts
uses: actions/upload-artifact@v7
with:
name: nuget-packages
path: |
artifacts/*.nupkg
artifacts/*.snupkg
retention-days: 30

- name: Publish to NuGet
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
run: dotnet nuget push "artifacts/*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
2 changes: 1 addition & 1 deletion PkgReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@
### Supported Frameworks
* .Net Framework 4.6.2 and later
* .Net Standard 2.1
* NET 6.0 and later
* NET 6.0 and NET 10.0

[![Paypal-Donations](https://img.shields.io/badge/Donate-PayPal-important.svg?style=flat-square)](https://www.paypal.com/donate?hosted_button_id=KSC3LRAR26AHN)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
### Supported Frameworks
* .Net Framework 4.6.2 and later
* .Net Standard 2.1
* NET 6.0 and later
* NET 6.0 and NET 10.0

[![Paypal-Donations](https://img.shields.io/badge/Donate-PayPal-important.svg?style=flat-square)](https://www.paypal.com/donate?hosted_button_id=KSC3LRAR26AHN)

Expand Down
4 changes: 2 additions & 2 deletions Src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
<Copyright>Copyright 2011-$(CurrentYear) axuno, MailMergeLib Project maintainers and contributers</Copyright>
<RepositoryUrl>https://github.com/axuno/MailMergeLib.git</RepositoryUrl>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<Version>5.13.0</Version>
<FileVersion>5.13.0</FileVersion>
<Version>5.14.0</Version>
<FileVersion>5.14.0</FileVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion> <!--only update AssemblyVersion with major releases -->
<LangVersion>latest</LangVersion>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
Expand Down
2 changes: 1 addition & 1 deletion Src/MailMergeLib.Tests/MailMergeLib.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<PropertyGroup>
<Description>Test project for MailMergeLib</Description>
<AssemblyTitle>MailMergeLib.UnitTest</AssemblyTitle>
<TargetFrameworks>net462;net8.0</TargetFrameworks>
<TargetFrameworks>net462;net10.0</TargetFrameworks>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
<AssemblyName>MailMergeLib.Tests</AssemblyName>
<AssemblyOriginatorKeyFile>../MailMergeLib/MailMergeLib.snk</AssemblyOriginatorKeyFile>
Expand Down
10 changes: 5 additions & 5 deletions Src/MailMergeLib/MailMergeLib.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<Description>MailMergeLib is a mail message client library which provides comfortable mail merge capabilities for text, inline images and attachments, as well as good throughput and fault tolerance for sending mail messages.</Description>
<AssemblyTitle>MailMergeLib</AssemblyTitle>
<AssemblyName>MailMergeLib</AssemblyName>
<TargetFrameworks>netstandard2.1;net462;net6.0</TargetFrameworks>
<TargetFrameworks>netstandard2.1;net462;net6.0;net10.0</TargetFrameworks>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<RootNamespace>MailMergeLib</RootNamespace>
<AssemblyOriginatorKeyFile>MailMergeLib.snk</AssemblyOriginatorKeyFile>
Expand Down Expand Up @@ -55,20 +55,20 @@ https://github.com/axuno/MailMergeLib/releases</PackageReleaseNotes>
</ItemGroup>

<ItemGroup>
<PackageReference Include="AngleSharp" Version="1.3.0" />
<PackageReference Include="MailKit" Version="4.14.0" />
<PackageReference Include="AngleSharp" Version="1.4.0" />
<PackageReference Include="MailKit" Version="4.15.1" />
<PackageReference Include="MimeKit" Version="4.15.1" />
<PackageReference Include="SmartFormat.NET" Version="3.6.1" />
<PackageReference Include="YAXLib" Version="4.3.0" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0">
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="10.0.103">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
<Reference Include="System.Configuration" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.9" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="10.0.3" />
<PackageReference Include="System.Text.Encoding.Extensions" Version="4.3.0" />
</ItemGroup>

Expand Down
67 changes: 0 additions & 67 deletions appveyor.yml

This file was deleted.

Loading