Skip to content

General Updates:

General Updates: #42

Workflow file for this run

name: default
env:
DOTNET_NOLOGO: true
on:
push:
branches:
- develop
- main
pull_request:
branches:
- develop
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
cache: true
cache-dependency-path: ./**/packages.lock.json
dotnet-version: |
8.0.x
9.0.x
- name: Restore dependencies
run: dotnet restore --locked-mode
- name: Build solution
run: dotnet build --configuration Release --no-restore
test:
needs: [build]
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
cache: true
cache-dependency-path: ./**/packages.lock.json
dotnet-version: |
8.0.x
9.0.x
- name: Restore dependencies
run: dotnet restore --locked-mode
- name: Run tests (net8.0)
run: foreach( $project in Get-ChildItem "ESCd.Extensions.*.Tests.csproj" -Recurse ) { dotnet test "$($project.FullName)" -f net8.0 --no-restore --results-directory TestResults/net8.0 --logger "trx;logFileName=$($project.BaseName).trx" --collect:"XPlat Code Coverage" /p:WarningLevel=0 -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.DeterministicReport=true }
shell: pwsh
- name: Run tests (net9.0)
run: foreach( $project in Get-ChildItem "ESCd.Extensions.*.Tests.csproj" -Recurse ) { dotnet test "$($project.FullName)" -f net9.0 --no-restore --results-directory TestResults/net9.0 --logger "trx;logFileName=$($project.BaseName).trx" --collect:"XPlat Code Coverage" /p:WarningLevel=0 -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.DeterministicReport=true }
shell: pwsh
- name: Upload artifact 'test-results'
uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: test-results
path: TestResults
- name: Report test results
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: test results
path: TestResults/**/*.trx
reporter: dotnet-trx
- name: Generate coverage results
uses: danielpalme/ReportGenerator-GitHub-Action@5
with:
reports: TestResults/**/coverage.cobertura.xml
reporttypes: "Cobertura;MarkdownSummary"
targetdir: CoverageResults
title: coverage results
- name: Upload artifact 'coverage-results'
uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: coverage-results
path: CoverageResults
- name: Report coverage results
uses: cryptoc1/cobertura-action@master
if: success() || failure()
with:
fail_below_threshold: false
link_missing_lines: true
minimum_coverage: 80
path: CoverageResults/Cobertura.xml
repo_token: ${{ secrets.GITHUB_TOKEN }}
report_name: coverage results
show_branch: false
show_class_names: true
show_missing: true
skip_covered: false
- name: Publish coverage results
if: success() || failure()
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
pack:
needs: [test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
cache: true
cache-dependency-path: ./**/packages.lock.json
dotnet-version: |
8.0.x
9.0.x
- name: Restore dependencies
run: dotnet restore --locked-mode
- name: Create packages
run: dotnet pack --configuration Release --output dist /p:WarningLevel=0
- name: Upload artifact 'packages'
uses: actions/upload-artifact@v4
with:
name: packages
path: dist
publish:
if: startsWith(github.ref, 'refs/heads/main') || startsWith(github.ref, 'refs/heads/develop')
needs: [pack]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
sparse-checkout: global.json
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
cache: false
dotnet-version: |
8.0.x
9.0.x
- name: Download artifact 'packages'
uses: actions/download-artifact@v4
with:
name: packages
- name: Push packages
run: dotnet nuget push "*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate