# Scanner CI Runner Harness (DEVOPS-SCANNER-CI-11-001) Purpose: deterministic, offline-friendly harness that restores, builds, and exercises the Scanner analyzers + WebService/Worker tests with warmed NuGet cache and TRX/binlog outputs. Usage - From repo root run: `ops/devops/scanner-ci-runner/run-scanner-ci.sh` - Outputs land in `ops/devops/artifacts/scanner-ci//`: - `build.binlog` (solution build) - `tests/*.trx` for grouped test runs - `summary.json` listing artefact paths and SHA256s Environment - Defaults: `DOTNET_CLI_TELEMETRY_OPTOUT=1`, `DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1`, `NUGET_PACKAGES=$REPO/.nuget/packages`. - Sources: `NUGET_SOURCES` (semicolon-separated) defaults to `local-nugets` then warmed cache; no internet required when cache is primed. - `TEST_FILTER` can narrow tests (empty = all). What it does 1) Warm NuGet cache from `local-nugets/` into `$NUGET_PACKAGES`. 2) `dotnet restore` + `dotnet build` on `src/Scanner/StellaOps.Scanner.sln` with `/bl`. 3) Run Scanner test buckets (core/analyzers/web/worker) with TRX outputs; buckets can be adjusted via `TEST_FILTER` or script edits. 4) Emit `summary.json` with artefact paths/hashes for reproducibility. Notes - Buckets are ordered to keep runtime predictable; adjust filters to target a subset when iterating. - Timestamped output directories keep ordering deterministic in offline pipelines.