Skip to content

Bump Saucery.TUnit from 0.6.43 to 0.6.81 (#222) #1000

Bump Saucery.TUnit from 0.6.43 to 0.6.81 (#222)

Bump Saucery.TUnit from 0.6.43 to 0.6.81 (#222) #1000

Workflow file for this run

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 }}