CI (full) #54
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: CI (full) | |
| # Runs the full suite that the fast PR gate skips: the Windows-only integration | |
| # tests on windows-latest and the cross-platform Docker/data-layer tests on | |
| # ubuntu-latest (MongoDB Atlas Local is a Linux container that cannot run on | |
| # hosted windows-latest). Scheduled nightly, on demand, and gated before release. | |
| on: | |
| schedule: | |
| - cron: "0 6 * * *" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-full-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| windows-full: | |
| name: Windows build + integration tests (windows-latest) | |
| runs-on: windows-latest | |
| timeout-minutes: 120 | |
| env: | |
| AVALONIA_UI_LICENSE_KEY: ${{ secrets.AVALONIA_UI_LICENSE_KEY }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Set up build | |
| uses: ./.github/actions/setup-build | |
| - name: Build (Release) | |
| shell: pwsh | |
| run: dotnet build Phantom.Workspaces.slnx -c Release --no-restore | |
| # windows-latest cannot start the Linux MongoDB container, so exclude the | |
| # SlowDocker tests here; they run in the ubuntu-latest job below. Also exclude | |
| # RequiresLocalConsole: the hosted windows-latest ConPTY renders no cmd.exe/pwsh | |
| # output bytes even though input and process exit work, so tests that assert on | |
| # captured shell output cannot pass on the hosted runner. They still run under | |
| # local -Mode full and local stability. Tracked by #1283. | |
| - name: Run Windows suite (excluding SlowDocker and RequiresLocalConsole) | |
| shell: pwsh | |
| run: | | |
| dotnet test Phantom.Workspaces.slnx --no-restore --nologo -v minimal ` | |
| --filter "Category!=SlowDocker & Category!=RequiresLocalConsole" | |
| - name: Upload Windows test logs | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ci-full-windows-logs | |
| path: scripts/test-results.log | |
| if-no-files-found: ignore | |
| linux-data-layer: | |
| name: Linux Docker/data-layer tests (ubuntu-latest) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 120 | |
| env: | |
| AVALONIA_UI_LICENSE_KEY: ${{ secrets.AVALONIA_UI_LICENSE_KEY }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Set up build | |
| uses: ./.github/actions/setup-build | |
| # Only the platform-agnostic data-layer Docker/Git integration tests run on | |
| # Linux; the Windows-only GUI/scheduled-task/junction tests run above. | |
| - name: Run Docker + Git integration tests | |
| shell: pwsh | |
| run: .\scripts\run-tests.ps1 -Mode full -TestNames Phantom.Workspaces.Data.MongoDB.Tests | |
| - name: Upload Linux test logs | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ci-full-linux-logs | |
| path: scripts/test-results.log | |
| if-no-files-found: ignore |