Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separated test runs by framework to avoid file-locking conflicts #1359

Closed
wants to merge 8 commits into from
43 changes: 35 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,41 @@ jobs:
with:
fetch-depth: '0'

- name: Build project
run: dotnet build -bl:build.binlog --configuration Release
- name: Build project - Release
run: dotnet build -bl:build.rls.binlog --configuration Release

- name: Build project - Debug
run: dotnet build -bl:build.dbg.binlog --configuration Debug

# there are cases where this will fail and we want to know about it
# so we don't use continue-on-error, but we still want to publish the results
- name: Test project
id: test
run: dotnet test -bl:test.binlog --filter "TestCategory != SkipOnTeamCity" --blame-hang-timeout 5m --logger:"trx;LogFilePrefix=results" --results-directory ./test-results
# Separate test steps for each framework to avoid file lock issues
- name: Test project (netcoreapp2.1)
id: test_netcoreapp21
run: dotnet test --no-build -bl:test_netcoreapp21.binlog --framework netcoreapp2.1 --filter "TestCategory != SkipOnTeamCity" --blame-hang-timeout 5m --logger:"trx;LogFilePrefix=results_netcoreapp21" --results-directory ./test-results/netcoreapp2.1

- name: Kill lingering test processes
run: |
taskkill /F /IM testhost.exe /T || exit 0
taskkill /F /IM dotnet.exe /T || exit 0
continue-on-error: true

- name: Test project (net6.0)
id: test_net6
run: dotnet test --no-build -bl:test_net6.binlog --framework net6.0 --filter "TestCategory != SkipOnTeamCity" --blame-hang-timeout 5m --logger:"trx;LogFilePrefix=results_net6" --results-directory ./test-results/net6.0

- name: Kill lingering test processes
run: |
taskkill /F /IM testhost.exe /T || exit 0
taskkill /F /IM dotnet.exe /T || exit 0
continue-on-error: true

- name: Test project (net8.0)
id: test_net8
run: dotnet test --no-build -bl:test_net8.binlog --framework net8.0 --filter "TestCategory != SkipOnTeamCity" --blame-hang-timeout 5m --logger:"trx;LogFilePrefix=results_net8" --results-directory ./test-results/net8.0

- name: Publish test results
if: ${{ !cancelled() && steps.test.outcome != 'skipped' }}
if: ${{ !cancelled() && (steps.test_netcoreapp21.outcome != 'skipped' || steps.test_net6.outcome != 'skipped' || steps.test_net8.outcome != 'skipped') }}
uses: EnricoMi/publish-unit-test-result-action/windows@v2
with:
check_name: LibPalaso Tests
Expand All @@ -42,5 +66,8 @@ jobs:
with:
name: binary-logs
path: |
build.binlog
test.binlog
build.rls.binlog
build.dbg.binlog
test_netcoreapp21.binlog
test_net6.binlog
test_net8.binlog
Loading