Bump Saucery.TUnit from 0.6.43 to 0.6.81 (#222) #1000
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Pipeline | |
on: | |
push: | |
branches: | |
- master | |
- 'dependabot/**' | |
- 'releases/**' | |
- 'feat/**' | |
- 'feature/**' | |
- 'fix/**' | |
env: | |
PROJECT_NAME: Saucery | |
SOLN_FILE: Saucery.sln # full path to your solution file | |
UT_DIR: Saucery.Core.Tests | |
NUNIT_INT_DIR: Merlin.NUnit | |
XUNIT_INT_DIR: Merlin.XUnit | |
TUNIT_INT_DIR: Merlin.TUnit | |
NUNIT_RD_INT_DIR: Merlin.NUnit.RealDevices | |
XUNIT_RD_INT_DIR: Merlin.XUnit.RealDevices | |
TUNIT_RD_INT_DIR: Merlin.TUnit.RealDevices | |
UT_PROJECT: Saucery.Core.Tests/Saucery.Core.Tests.csproj # full path to your unit test project file | |
M_NUNIT_PROJECT: Merlin.NUnit/Merlin.NUnit.csproj # full path to nunit internal integration test project file | |
M_RD_NUNIT_PROJECT: Merlin.NUnit.RealDevices/Merlin.NUnit.RealDevices.csproj # full path to nunit internal integration test project file | |
EM_NUNIT_PROJECT: ExternalMerlin.NUnit/ExternalMerlin.NUnit.csproj # full path to nunit external integration test project file | |
EM_RD_NUNIT_PROJECT: ExternalMerlin.NUnit.RealDevices/ExternalMerlin.NUnit.RealDevices.csproj # full path to nunit external integration test project file | |
M_XUNIT_PROJECT: Merlin.XUnit/Merlin.XUnit.csproj # full path to xunit internal integration test project file | |
M_RD_XUNIT_PROJECT: Merlin.XUnit.RealDevices/Merlin.XUnit.RealDevices.csproj # full path to xunit internal integration test project file | |
EM_XUNIT_PROJECT: ExternalMerlin.XUnit/ExternalMerlin.XUnit.csproj # full path to xunit external integration test project file | |
EM_RD_XUNIT_PROJECT: ExternalMerlin.XUnit.RealDevices/ExternalMerlin.XUnit.RealDevices.csproj # full path to xunit external integration test project file | |
M_TUNIT_PROJECT: Merlin.TUnit/Merlin.TUnit.csproj # full path to xunit internal integration test project file | |
M_RD_TUNIT_PROJECT: Merlin.TUnit.RealDevices/Merlin.TUnit.RealDevices.csproj # full path to xunit internal integration test project file | |
EM_TUNIT_PROJECT: ExternalMerlin.TUnit/ExternalMerlin.TUnit.csproj # full path to xunit external integration test project file | |
EM_RD_TUNIT_PROJECT: ExternalMerlin.TUnit.RealDevices/ExternalMerlin.TUnit.RealDevices.csproj # full path to xunit external integration test project file | |
SAUCE_USER_NAME: ${{ secrets.SAUCE_USER_NAME }} | |
SAUCE_API_KEY: ${{ secrets.SAUCE_API_KEY }} | |
CONFIG: Release | |
APP_PACKAGE_PATH: 'published' # set this to the path to your web app project, defaults to the repository root | |
COVERAGE_FORMAT: opencover | |
UNIT_COVERAGE_FILENAME: 'opencover.unit.xml' | |
NUNIT_INTEGRATION_COVERAGE_FILENAME: 'opencover.nunit.integration.xml' | |
XUNIT_INTEGRATION_COVERAGE_FILENAME: 'opencover.xunit.integration.xml' | |
TUNIT_INTEGRATION_COVERAGE_FILENAME: 'opencover.tunit.integration.xml' | |
NUNIT_RD_INTEGRATION_COVERAGE_FILENAME: 'opencover.nunit.realdevice.integration.xml' | |
XUNIT_RD_INTEGRATION_COVERAGE_FILENAME: 'opencover.xunit.realdevice.integration.xml' | |
TUNIT_RD_INTEGRATION_COVERAGE_FILENAME: 'opencover.tunit.realdevice.integration.xml' | |
COVERAGE_THRESHOLD: 80 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/9.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
## Run code analysis for all projects/solutions, such that code analysis violations break the build. | |
#- name: Run .NET Code Analysis | |
# uses: dotnet/code-analysis@v1 | |
# id: code-analysis | |
# with: | |
# build-breaking: true | |
- name: Run Unit Tests | |
uses: b3b00/coverlet-action@11.9 | |
with: | |
testProject: ${{ env.UT_PROJECT }} | |
output: ${{ env.UNIT_COVERAGE_FILENAME }} | |
outputFormat: ${{ env.COVERAGE_FORMAT }} | |
threshold: ${{ env.COVERAGE_THRESHOLD }} | |
excludes: '[Saucery.Core.Tests]Tests.*,[Saucery]AutoGeneratedProgram,[Saucery]Saucery.Selenium.*,[Saucery]Saucery.Driver.SauceryAndroid*,[Saucery]Saucery.Driver.SauceryIOS*,[Saucery]Saucery.Tests.SauceryAndroid*,[Saucery]Saucery.Tests.SauceryIOS*,[Saucery]Saucery.DataSources.EnvCompositor*,[Saucery]Saucery.Util.WebControl' | |
- name: Publish Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: unit-test-results | |
path: ${{ env.UT_DIR }}/${{ env.UNIT_COVERAGE_FILENAME }} | |
xunit-integration-tests: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run XUnit Integration Tests | |
uses: b3b00/coverlet-action@11.9 | |
with: | |
testProject: ${{ env.M_XUNIT_PROJECT }} | |
output: ${{ env.XUNIT_INTEGRATION_COVERAGE_FILENAME }} | |
outputFormat: ${{ env.COVERAGE_FORMAT }} | |
#threshold: ${{ env.COVERAGE_THRESHOLD }} | |
excludes: '[Merlin.XUnit]Tests.*' | |
- name: Publish Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: xunit-integration-test-results | |
path: ${{ env.XUNIT_INT_DIR }}/${{ env.XUNIT_INTEGRATION_COVERAGE_FILENAME }} | |
nunit-integration-tests: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run NUnit Integration Tests | |
uses: b3b00/coverlet-action@11.9 | |
with: | |
testProject: ${{ env.M_NUNIT_PROJECT }} | |
output: ${{ env.NUNIT_INTEGRATION_COVERAGE_FILENAME }} | |
outputFormat: ${{ env.COVERAGE_FORMAT }} | |
#threshold: ${{ env.COVERAGE_THRESHOLD }} | |
excludes: '[Merlin.NUnit]Tests.*' | |
- name: Publish Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nunit-integration-test-results | |
path: ${{ env.NUNIT_INT_DIR }}/${{ env.NUNIT_INTEGRATION_COVERAGE_FILENAME }} | |
nunit-real-integration-tests: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run NUnit Integration Tests | |
uses: b3b00/coverlet-action@11.9 | |
with: | |
testProject: ${{ env.M_RD_NUNIT_PROJECT }} | |
output: ${{ env.NUNIT_RD_INTEGRATION_COVERAGE_FILENAME }} | |
outputFormat: ${{ env.COVERAGE_FORMAT }} | |
#threshold: ${{ env.COVERAGE_THRESHOLD }} | |
excludes: '[Merlin.NUnit.RealDevices]Tests.*' | |
- name: Publish Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nunit-real-integration-test-results | |
path: ${{ env.NUNIT_RD_INT_DIR }}/${{ env.NUNIT_RD_INTEGRATION_COVERAGE_FILENAME }} | |
xunit-real-integration-tests: | |
runs-on: ubuntu-latest | |
# needs: xunit-integration-tests | |
needs: build | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run XUnit Real Integration Tests | |
uses: b3b00/coverlet-action@11.9 | |
with: | |
testProject: ${{ env.M_RD_XUNIT_PROJECT }} | |
output: ${{ env.XUNIT_RD_INTEGRATION_COVERAGE_FILENAME }} | |
outputFormat: ${{ env.COVERAGE_FORMAT }} | |
#threshold: ${{ env.COVERAGE_THRESHOLD }} | |
excludes: '[Merlin.XUnit.RealDevice]Tests.*' | |
- name: Publish Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: xunit-real-integration-test-results | |
path: ${{ env.XUNIT_RD_INT_DIR }}/${{ env.XUNIT_RD_INTEGRATION_COVERAGE_FILENAME }} | |
xunit-external-tests: | |
runs-on: ubuntu-latest | |
needs: nunit-real-integration-tests | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run External XUnit Integration Tests | |
run: dotnet test -c ${{ env.CONFIG }} ${{ env.EM_XUNIT_PROJECT }} | |
nunit-external-tests: | |
runs-on: ubuntu-latest | |
needs: nunit-real-integration-tests | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v3 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run External NUnit Integration Tests | |
run: dotnet test -c ${{ env.CONFIG }} ${{ env.EM_NUNIT_PROJECT }} | |
xunit-real-external-tests: | |
runs-on: ubuntu-latest | |
needs: xunit-real-integration-tests | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run External XUnit Real Integration Tests | |
run: dotnet test -c ${{ env.CONFIG }} ${{ env.EM_RD_XUNIT_PROJECT }} | |
nunit-real-external-tests: | |
runs-on: ubuntu-latest | |
needs: xunit-real-integration-tests | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v3 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run External NUnit Real Integration Tests | |
run: dotnet test -c ${{ env.CONFIG }} ${{ env.EM_RD_NUNIT_PROJECT }} | |
tunit-integration-tests: | |
runs-on: ubuntu-latest | |
needs: [nunit-integration-tests, | |
xunit-integration-tests, | |
xunit-external-tests, | |
nunit-external-tests, | |
xunit-real-external-tests, | |
nunit-real-external-tests] | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run TUnit Integration Tests | |
run: dotnet test -c ${{ env.CONFIG }} ${{ env.M_TUNIT_PROJECT }} | |
# - name: Run TUnit Integration Tests | |
# uses: b3b00/coverlet-action@11.9 | |
# with: | |
# testProject: ${{ env.M_TUNIT_PROJECT }} | |
# output: ${{ env.TUNIT_INTEGRATION_COVERAGE_FILENAME }} | |
# outputFormat: ${{ env.COVERAGE_FORMAT }} | |
# threshold: ${{ env.COVERAGE_THRESHOLD }} | |
# excludes: '[Merlin.TUnit]Tests.*' | |
# - name: Publish Artifacts | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: tunit-integration-test-results | |
# path: ${{ env.TUNIT_INT_DIR }}/${{ env.TUNIT_INTEGRATION_COVERAGE_FILENAME }} | |
tunit-real-integration-tests: | |
runs-on: ubuntu-latest | |
needs: [nunit-integration-tests, | |
xunit-integration-tests, | |
xunit-external-tests, | |
nunit-external-tests, | |
xunit-real-external-tests, | |
nunit-real-external-tests] | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run TUnit Real Integration Tests | |
run: dotnet test -c ${{ env.CONFIG }} ${{ env.M_RD_TUNIT_PROJECT }} | |
# - name: Run TUnit Integration Tests | |
# uses: b3b00/coverlet-action@11.9 | |
# with: | |
# testProject: ${{ env.M_TUNIT_PROJECT }} | |
# output: ${{ env.TUNIT_RD_INTEGRATION_COVERAGE_FILENAME }} | |
# outputFormat: ${{ env.COVERAGE_FORMAT }} | |
# threshold: ${{ env.COVERAGE_THRESHOLD }} | |
# excludes: '[Merlin.TUnit]Tests.*' | |
# - name: Publish Artifacts | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: tunit-integration-test-results | |
# path: ${{ env.TUNIT_INT_DIR }}/${{ env.TUNIT_RD_INTEGRATION_COVERAGE_FILENAME }} | |
tunit-external-tests: | |
runs-on: ubuntu-latest | |
needs: [tunit-real-integration-tests, | |
tunit-integration-tests] | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v3 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run External TUnit Integration Tests | |
run: dotnet test -c ${{ env.CONFIG }} ${{ env.EM_TUNIT_PROJECT }} | |
tunit-real-external-tests: | |
runs-on: ubuntu-latest | |
needs: [tunit-real-integration-tests, | |
tunit-integration-tests] | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v3 | |
with: | |
# Check for latest at link at .NET 9 download page (https://dotnet.microsoft.com/download/dotnet/8.0) | |
dotnet-version: 9.0.x | |
- name: Compile solution | |
run: dotnet build -c ${{ env.CONFIG }} | |
- name: Run External TUnit Real Integration Tests | |
run: dotnet test -c ${{ env.CONFIG }} ${{ env.EM_RD_TUNIT_PROJECT }} | |
generate-report: | |
runs-on: ubuntu-latest | |
needs: [tunit-external-tests, | |
tunit-real-external-tests] | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Download unit-test results | |
uses: actions/download-artifact@v4 | |
with: | |
name: unit-test-results | |
- name: Download nunit-integration-test results | |
uses: actions/download-artifact@v4 | |
with: | |
name: nunit-integration-test-results | |
- name: Download xunit-integration-test results | |
uses: actions/download-artifact@v4 | |
with: | |
name: xunit-integration-test-results | |
- name: Download nunit-real-integration-test results | |
uses: actions/download-artifact@v4 | |
with: | |
name: nunit-real-integration-test-results | |
- name: Download xunit-real-integration-test results | |
uses: actions/download-artifact@v4 | |
with: | |
name: xunit-real-integration-test-results | |
- name: Present working directory | |
run: pwd | |
# - name: Display structure of downloaded files | |
# run: ls -R | |
- name: ReportGenerator | |
uses: danielpalme/ReportGenerator-GitHub-Action@5.4.3 | |
with: | |
# REQUIRED # The coverage reports that should be parsed (separated by semicolon). Globbing is supported. | |
reports: ${{ env.UNIT_COVERAGE_FILENAME }}; | |
${{ env.NUNIT_INTEGRATION_COVERAGE_FILENAME }}; | |
${{ env.XUNIT_INTEGRATION_COVERAGE_FILENAME }}; | |
${{ env.XUNIT_RD_INTEGRATION_COVERAGE_FILENAME }}; | |
${{ env.NUNIT_RD_INTEGRATION_COVERAGE_FILENAME }}; | |
${{ env.TUNIT_INTEGRATION_COVERAGE_FILENAME }} | |
targetdir: 'coveragereport' # REQUIRED # The directory where the generated report should be saved. | |
reporttypes: 'HtmlInline;Cobertura' # The output formats and scope (separated by semicolon) Values: Badges, Clover, Cobertura, CsvSummary, Html, HtmlChart, HtmlInline, HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Dark, HtmlSummary, JsonSummary, Latex, LatexSummary, lcov, MarkdownSummary, MHtml, PngChart, SonarQube, TeamCitySummary, TextSummary, Xml, XmlSummary | |
- name: Upload coverage report artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CoverageReport # Artifact name | |
path: coveragereport # Directory containing files to upload | |
# Use always() to always run this step to publish test results when there are test failures | |
if: ${{ always() }} | |
- name: Bump version and push tag | |
if: ${{ (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/master') && success() }} | |
id: tag_version | |
uses: mathieudutour/github-tag-action@v6.2 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} |