Run tests / Fix #2581: Copy WarningsAsErrors setting to generated project (#2976) Add WarningsAsErrors to SettingsWeWantToCopy array in CsProjGenerator so that NuGet restore warnings configured in the source project are preserved in the generated benchmark project and fail the build. Added test WarningsAsErrorsSettingGetsCopied() to verify the fix. Co-authored-by: Shrinidhi203 <[email protected]> #2309
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: run-tests | |
| run-name: Run tests / ${{ github.event.head_commit.message }} | |
| on: | |
| pull_request: | |
| push: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| test-windows-core: | |
| strategy: | |
| matrix: | |
| os: [windows-latest, windows-11-arm] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Add Windows Defender Exclusions | |
| shell: powershell | |
| run: | | |
| Add-MpPreference -ExclusionPath $env:GITHUB_WORKSPACE | |
| Add-MpPreference -ExclusionPath $env:TEMP | |
| - uses: actions/checkout@v6 | |
| # Build and Test | |
| - name: Run task 'build' | |
| shell: cmd | |
| run: ./build.cmd build | |
| - name: Run task 'in-tests-core' | |
| shell: cmd | |
| run: ./build.cmd in-tests-core -e | |
| # Report test results with unique name | |
| - name: Report tests results | |
| uses: dorny/test-reporter@fe45e9537387dac839af0d33ba56eed8e24189e8 # v2.3.0 | |
| if: always() | |
| with: | |
| name: test-windows-core-${{ matrix.os }} | |
| path: "**/*.trx" | |
| reporter: dotnet-trx | |
| # Upload Artifacts with Unique Name | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v6 | |
| if: always() | |
| with: | |
| name: test-windows-core-trx-${{ github.run_id }}-${{ matrix.os }} | |
| path: "**/*.trx" | |
| test-windows-full: | |
| strategy: | |
| matrix: | |
| os: [windows-latest, windows-11-arm] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Add Windows Defender Exclusions | |
| shell: powershell | |
| run: | | |
| Add-MpPreference -ExclusionPath $env:GITHUB_WORKSPACE | |
| Add-MpPreference -ExclusionPath $env:TEMP | |
| - uses: actions/checkout@v6 | |
| # Build and Test | |
| - name: Run task 'build' | |
| shell: cmd | |
| run: ./build.cmd build | |
| - name: Run task 'unit-tests' | |
| shell: cmd | |
| run: ./build.cmd unit-tests -e | |
| - name: Run task 'analyzer-tests' | |
| shell: cmd | |
| run: ./build.cmd analyzer-tests -e | |
| - name: Run task 'in-tests-full' | |
| shell: cmd | |
| run: ./build.cmd in-tests-full -e | |
| # Report test results with unique name | |
| - name: Report tests results | |
| uses: dorny/test-reporter@fe45e9537387dac839af0d33ba56eed8e24189e8 # v2.3.0 | |
| if: always() | |
| with: | |
| name: test-windows-full-${{ matrix.os }} | |
| path: "**/*.trx" | |
| reporter: dotnet-trx | |
| # Upload Artifacts with Unique Name | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v6 | |
| if: always() | |
| with: | |
| name: test-windows-full-trx-${{ github.run_id }}-${{ matrix.os }} | |
| path: "**/*.trx" | |
| test-linux: | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, ubuntu-24.04-arm] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| # Set up the environment | |
| - name: Set up Clang | |
| uses: egor-tensin/setup-clang@ef434b41eb33a70396fb336b1bae39c76d740c3d # v1.4 | |
| with: | |
| version: latest | |
| platform: x64 | |
| - name: Set up zlib-static | |
| run: sudo apt-get install -y libkrb5-dev | |
| - name: Set up node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "24" | |
| - name: Set up v8 | |
| run: npm install jsvu -g && jsvu --os=linux64 --engines=v8 && echo "$HOME/.jsvu/bin" >> $GITHUB_PATH | |
| - name: Install wasm-tools workload | |
| run: ./build.cmd install-wasm-tools | |
| # Build and Test | |
| - name: Run task 'build' | |
| run: ./build.cmd build | |
| - name: Run task 'analyzer-tests' | |
| run: ./build.cmd analyzer-tests -e | |
| - name: Run task 'unit-tests' | |
| run: ./build.cmd unit-tests -e | |
| - name: Run task 'in-tests-core' | |
| run: ./build.cmd in-tests-core -e | |
| # Report test results with unique name | |
| - name: Report tests results | |
| uses: dorny/test-reporter@fe45e9537387dac839af0d33ba56eed8e24189e8 # v2.3.0 | |
| if: always() | |
| with: | |
| name: test-linux-${{ matrix.os }} | |
| path: "**/*.trx" | |
| reporter: dotnet-trx | |
| # Upload Artifacts with Unique Name | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v6 | |
| if: always() | |
| with: | |
| name: test-linux-trx-${{ github.run_id }}-${{ matrix.os }} | |
| path: "**/*.trx" | |
| test-macos: | |
| name: test-macos (${{ matrix.os.arch }}) | |
| runs-on: ${{ matrix.os.runs-on }} | |
| strategy: | |
| matrix: | |
| os: | |
| - runs-on: 'macos-latest' | |
| jsvu-os: 'mac64arm' | |
| arch: 'arm64' | |
| - runs-on: 'macos-15-intel' | |
| jsvu-os: 'mac64' | |
| arch: 'x64' | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "24" | |
| - name: Set up v8 | |
| run: npm install jsvu -g && jsvu --os=${{ matrix.os.jsvu-os }} --engines=v8 && echo "$HOME/.jsvu/bin" >> $GITHUB_PATH | |
| - name: Install wasm-tools workload | |
| run: ./build.cmd install-wasm-tools | |
| # Build and Test | |
| - name: Run task 'build' | |
| run: ./build.cmd build | |
| - name: Run task 'analyzer-tests' | |
| run: ./build.cmd analyzer-tests -e | |
| - name: Run task 'unit-tests' | |
| run: ./build.cmd unit-tests -e | |
| - name: Run task 'in-tests-core' | |
| run: ./build.cmd in-tests-core -e | |
| # Report test results with unique name | |
| - name: Report tests results | |
| uses: dorny/test-reporter@fe45e9537387dac839af0d33ba56eed8e24189e8 # v2.3.0 | |
| if: always() | |
| with: | |
| name: test-macos(${{ matrix.os.arch }}) | |
| path: "**/*.trx" | |
| reporter: dotnet-trx | |
| # Upload Artifacts with Unique Name | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v6 | |
| if: always() | |
| with: | |
| name: test-macos(${{ matrix.os.arch }})-trx-${{ github.run_id }} | |
| path: "**/*.trx" | |
| test-pack: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Clang | |
| uses: egor-tensin/setup-clang@v1 | |
| with: | |
| version: latest | |
| platform: x64 | |
| - name: Set up zlib-static | |
| run: sudo apt-get install -y libkrb5-dev | |
| - name: Run task 'pack' | |
| run: ./build.cmd pack | |
| spellcheck-docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| name: Setup node | |
| with: | |
| node-version: "24" | |
| - name: Install cSpell | |
| run: npm install -g [email protected] | |
| - name: Copy cSpell config | |
| run: cp ./build/cSpell.json ./cSpell.json | |
| - name: Run cSpell | |
| run: cspell --config ./cSpell.json "docs/**/*.md" --no-progress |