integration-tests.yml 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. name: Build & Run Integration Tests
  2. on:
  3. push:
  4. branches: [ v2_release, v2_develop ]
  5. paths-ignore:
  6. - '**.md'
  7. pull_request:
  8. branches: [ v2_release, v2_develop ]
  9. paths-ignore:
  10. - '**.md'
  11. jobs:
  12. # Call the build workflow to build the solution once
  13. build:
  14. uses: ./.github/workflows/build.yml
  15. integration_tests:
  16. name: Integration Tests
  17. runs-on: ${{ matrix.os }}
  18. needs: build
  19. strategy:
  20. # Turn off fail-fast to let all runners run even if there are errors
  21. fail-fast: true
  22. matrix:
  23. os: [ ubuntu-latest, windows-latest, macos-latest ]
  24. timeout-minutes: 10
  25. steps:
  26. - name: Checkout code
  27. uses: actions/checkout@v4
  28. - name: Setup .NET Core
  29. uses: actions/setup-dotnet@v4
  30. with:
  31. dotnet-version: 8.x
  32. dotnet-quality: 'ga'
  33. - name: Download build artifacts
  34. uses: actions/download-artifact@v4
  35. with:
  36. name: build-artifacts
  37. path: .
  38. - name: Restore NuGet packages
  39. run: dotnet restore
  40. - name: Set VSTEST_DUMP_PATH
  41. shell: bash
  42. run: echo "{VSTEST_DUMP_PATH}={logs/${{ runner.os }}/}" >> $GITHUB_ENV
  43. - name: Run IntegrationTests
  44. run: |
  45. dotnet test Tests/IntegrationTests --no-build --verbosity normal --diag:logs/${{ runner.os }}/logs.txt --blame --blame-crash --blame-hang --blame-hang-timeout 60s --blame-crash-collect-always -- xunit.stopOnFail=true
  46. - name: Upload Test Logs
  47. if: always()
  48. uses: actions/upload-artifact@v4
  49. with:
  50. name: integration-test-logs-${{ runner.os }}
  51. path: |
  52. logs/
  53. TestResults/IntegrationTests/