Version 11 preview #207
This file contains hidden or 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 repo | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| paths: | |
| - 'src/**' | |
| - 'tests/**' | |
| - 'example/**' | |
| - '.github/workflows/**' | |
| permissions: | |
| contents: read | |
| id-token: write | |
| attestations: write | |
| jobs: | |
| check-code-formatting: | |
| runs-on: ubuntu-latest | |
| name: Check code formatting against editorconfig | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 1 | |
| # The NuGet package we're building targets net10.0 and net11.0. The runner's | |
| # pre-installed SDKs lag behind these versions, so we install both explicitly. | |
| - name: Setup .NET SDKs | |
| uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0 | |
| with: | |
| dotnet-version: | | |
| 10.0.x | |
| 11.0.x | |
| - name: Install dotnet-format tool | |
| run: dotnet tool install -g dotnet-format | |
| - name: Check Code Format | |
| run: dotnet-format --check | |
| build: | |
| needs: [check-code-formatting] | |
| runs-on: ubuntu-latest | |
| name: Build code base, checking for compilation errors | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| # The NuGet package we're building targets net10.0 and net11.0. The runner's | |
| # pre-installed SDKs lag behind these versions, so we install both explicitly. | |
| - name: Setup .NET SDKs | |
| uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0 | |
| with: | |
| dotnet-version: | | |
| 10.0.x | |
| 11.0.x | |
| - name: Install dependencies | |
| run: dotnet restore --locked-mode | |
| - name: Build | |
| run: dotnet build --configuration Release --no-restore | |
| test: | |
| # This job is adapted from https://josh-ops.com/posts/github-code-coverage/ | |
| # It adds a code coverage report to all PR builds | |
| permissions: | |
| contents: read # for actions/checkout to fetch code | |
| needs: [build] | |
| runs-on: ubuntu-latest | |
| name: Run all tests and generate PR-level code coverage report | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| # The NuGet package we're building targets net10.0 and net11.0. The runner's | |
| # pre-installed SDKs lag behind these versions, so we install both explicitly. | |
| - name: Setup .NET SDKs | |
| uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0 | |
| with: | |
| dotnet-version: | | |
| 10.0.x | |
| 11.0.x | |
| - name: Run all tests | |
| run: dotnet test OwaspHeaders.Core.sln --verbosity minimal --collect:"XPlat Code Coverage" --logger trx --results-directory coverage --filter "Category!=Performance" | |
| - name: Code Coverage Summary Report | |
| uses: irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0 | |
| with: | |
| filename: 'coverage/*/coverage.cobertura.xml' | |
| badge: true | |
| format: 'markdown' | |
| output: 'both' | |
| - name: Upload Coverage Results for PR Comment | |
| uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| if: github.event_name == 'pull_request' | |
| with: | |
| name: coverage-results | |
| path: | | |
| code-coverage-results.md | |
| coverage/*/coverage.cobertura.xml | |
| retention-days: 1 | |
| - name: Write to Job Summary | |
| run: cat code-coverage-results.md >> $GITHUB_STEP_SUMMARY | |
| package: | |
| permissions: | |
| contents: read | |
| needs: [build, test] | |
| runs-on: ubuntu-latest | |
| name: Create the NuGet package for PR-level user testing | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| # The NuGet package we're building targets net10.0 and net11.0. The runner's | |
| # pre-installed SDKs lag behind these versions, so we install both explicitly. | |
| - name: Setup .NET SDKs | |
| uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0 | |
| with: | |
| dotnet-version: | | |
| 10.0.x | |
| 11.0.x | |
| - name: Build NuGet Package | |
| run: dotnet pack src/OwaspHeaders.Core.csproj --configuration Release | |
| - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| if: ${{ success() }} | |
| with: | |
| name: OwaspHeaders.Core | |
| path: ${{ github.workspace }}/**/*.nupkg | |
| retention-days: 5 |