Skip to content

CI (full)

CI (full) #33

Workflow file for this run

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
env:
AVALONIA_UI_LICENSE_KEY: ${{ secrets.AVALONIA_UI_LICENSE_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v4
- 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.
- name: Run Windows suite (excluding SlowDocker)
shell: pwsh
run: |
dotnet test Phantom.Workspaces.slnx --no-restore --nologo -v minimal `
--filter "Category!=SlowDocker"
- 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
env:
AVALONIA_UI_LICENSE_KEY: ${{ secrets.AVALONIA_UI_LICENSE_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v4
- 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