Skip to content

Run tests / Skip building project references in no-dependencies publishes (#3273) dotnet publish accepts --no-dependencies but still builds project references, unlike dotnet build. Integration tests on .NET Core hosts therefore rebuilt the whole benchmark project graph for every publishing partition (NativeAOT, Mono, Wasm, R2R, CoreRun), including the running test project, whose locked output could fail the build when a referenced DLL went stale mid-run. Pass /p:BuildProjectReferences=false alongside -... #3705

Run tests / Skip building project references in no-dependencies publishes (#3273) dotnet publish accepts --no-dependencies but still builds project references, unlike dotnet build. Integration tests on .NET Core hosts therefore rebuilt the whole benchmark project graph for every publishing partition (NativeAOT, Mono, Wasm, R2R, CoreRun), including the running test project, whose locked output could fail the build when a referenced DLL went stale mid-run. Pass /p:BuildProjectReferences=false alongside -...

Run tests / Skip building project references in no-dependencies publishes (#3273) dotnet publish accepts --no-dependencies but still builds project references, unlike dotnet build. Integration tests on .NET Core hosts therefore rebuilt the whole benchmark project graph for every publishing partition (NativeAOT, Mono, Wasm, R2R, CoreRun), including the running test project, whose locked output could fail the build when a referenced DLL went stale mid-run. Pass /p:BuildProjectReferences=false alongside -... #3705

Workflow file for this run

name: run-tests
run-name: Run tests / ${{ github.event.head_commit.message }}
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
push:
workflow_dispatch:
env:
IS_DRAFT_PR: ${{ github.event.pull_request.draft }}
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:
# Checkout
- uses: actions/checkout@v7
# Add Windows Defender Exclusions
- uses: ./.github/actions/add-windowsdefender-exclusions
# Setup additional tools
- name: Setup additional tools for Wasm/NativeAot tests
if: ${{ github.event.pull_request.draft != true }}
uses: ./.github/actions/setup-additional-tools
# 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-core'
shell: cmd
run: ./build.cmd in-tests-core -e
# Report test results with unique name
- name: Report tests results
uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.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@v7
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:
# Checkout
- uses: actions/checkout@v7
# Add Windows Defender Exclusions
- uses: ./.github/actions/add-windowsdefender-exclusions
# Setup additional tools
- name: Setup additional tools for Wasm/NativeAot tests
if: ${{ github.event.pull_request.draft != true }}
uses: ./.github/actions/setup-additional-tools
# 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@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.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@v7
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@v7
# Setup additional tools
- name: Setup additional tools for Wasm/NativeAot tests
if: ${{ github.event.pull_request.draft != true }}
uses: ./.github/actions/setup-additional-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@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.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@v7
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'
arch: 'arm64'
- runs-on: 'macos-26-intel'
arch: 'x64'
steps:
- uses: actions/checkout@v7
# Setup additional tools
- name: Setup additional tools for Wasm/NativeAot tests
if: ${{ github.event.pull_request.draft != true }}
uses: ./.github/actions/setup-additional-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@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.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@v7
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@v7
- name: Run task 'pack'
run: ./build.cmd pack
spellcheck-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
name: Setup node
with:
node-version: "24"
- name: Install cSpell
run: npm install -g cspell@10.3.3
- name: Copy cSpell config
run: cp ./build/cSpell.json ./cSpell.json
- name: Run cSpell
run: cspell --config ./cSpell.json "docs/**/*.md" --no-progress