Operations
Build
dotnet restore src/GsdOrchestrator/GsdOrchestrator.csproj
dotnet build src/GsdOrchestrator/GsdOrchestrator.csproj --no-restore --configuration Release
Test
dotnet restore src/GsdOrchestrator.Tests/GsdOrchestrator.Tests.csproj
dotnet build src/GsdOrchestrator.Tests/GsdOrchestrator.Tests.csproj --no-restore --configuration Release
dotnet test src/GsdOrchestrator.Tests/GsdOrchestrator.Tests.csproj --configuration Release --no-build
Contract-compatibility gate only (consumer-side check against the pinned cas-contracts v1.1
release, fails red on drift):
dotnet test src/GsdOrchestrator.Tests/GsdOrchestrator.Tests.csproj --configuration Release --no-build --filter "FullyQualifiedName~ContractCompatibilityTests"
CI (.github/workflows/ci.yml, windows-latest, 30-minute timeout)
actions/checkout@v7actions/setup-dotnet@v5(.NET10.0.1xx)- Restore + build
GsdOrchestrator.csproj - Restore + build
GsdOrchestrator.Tests.csproj - Contract compatibility —
ContractCompatibilityTestsfilter, fails red on pinned-contract drift - Test — full suite with
--collect:"XPlat Code Coverage", results to./TestResults - Upload coverage —
actions/upload-artifact@v7,coverage-resultsartifact (always runs)
There is currently no coverage-threshold enforcement step on main — coverage is
collected and published as an artifact only. A ratcheted branch-rate gate is in progress;
see Architecture — Test Coverage and PR #16.
A separate .github/workflows/codeql.yml runs CodeQL analysis (badge in the root README.md).
Run the orchestrator locally
Requires .env with GITHUB_PERSONAL_ACCESS_TOKEN, ANTHROPIC_API_KEY,
GSD_GITHUB_OWNER, GSD_GITHUB_REPO set (copy from .env.example).