Run tests / chore: Add build/common.targets file and modify related settings (#2932)
* chore: add common.targets file and modify settings
* chore: rename props file
* Update build/common.props
Co-authored-by: Tim Cassell <[email protected]>
---------
Co-authored-by: Tim Cassell <[email protected]>
#2146
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: Disable Windows Defender | |
| run: Set-MpPreference -DisableRealtimeMonitoring $true | |
| shell: powershell | |
| - uses: actions/checkout@v4 | |
| # 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@v2 | |
| 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@v4 | |
| 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: Disable Windows Defender | |
| run: Set-MpPreference -DisableRealtimeMonitoring $true | |
| shell: powershell | |
| - uses: actions/checkout@v4 | |
| # 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@v2 | |
| 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@v4 | |
| 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@v4 | |
| # 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@v4 | |
| with: | |
| node-version: "22" | |
| - 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@v2 | |
| 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@v4 | |
| 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@v4 | |
| - name: Set up node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| - 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@v2 | |
| 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@v4 | |
| 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@v4 | |
| - 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@v4 | |
| - uses: actions/setup-node@v4 | |
| name: Setup node | |
| with: | |
| node-version: "22" | |
| - 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 |