diff --git a/infra/terraform/ci-runners/README.md b/infra/terraform/ci-runners/README.md index 280d80e..e29f8b9 100644 --- a/infra/terraform/ci-runners/README.md +++ b/infra/terraform/ci-runners/README.md @@ -10,7 +10,7 @@ Terraform module to provision a pool of disposable DigitalOcean droplets that ac - **Ephemeral-friendly**: Runners are stateless; destroy the droplets after use. Use `--ephemeral` style if extending the runner binary flags. - **Labels**: Default `self-hosted,linux,do,ct-forge` (general CI/build). Package publish adds `,publish`. See LP's `infrastructure/setup-forgejo-host.sh` (labels like self-hosted,linux,black but with :host suffix in config for host execution mode; our cloud-init replicates that logic on DO golden images for ct-forge). LP's main CI now targets these DO runners (no more black). - **Playwright & SSH support**: Cloud-init installs Chromium deps (for LP e2e/build, replicating setup_playwright) and optional SSH priv key (via var.ssh_priv_key, for deploys like setup_ssh_key in LP script). Pass in TF for full LP compatibility. -- **Integrates with existing infra**: Reuses `cocotte-fleet` SSH key, `cocotte:dev` project, golden images, build user "cocotte". +- **Integrates with existing infra**: Reuses `cocotte-fleet` SSH key, `cocotte:dev` project, golden images, build user "cocotte". The runners publish to the new services on the ct-forge droplet: Verdaccio (npm @lilith/* at npm.ct:4873), pypiserver (PyPI at pypi.ct:8080), Swift via Forgejo package registry (swift.ct/api/packages/.../swift). See uvlava terraform/do cloud-init/forge.yaml for the services compose on the forge droplet itself. ## Usage (from cocottetech root or infra dir) @@ -123,4 +123,17 @@ If you want per-job VMs (true one-shot): - The package extraction plan: each small package repo will have its publish workflow targeting these labels. - LP's `setup-forgejo-host.sh`: reference for the registration/install logic (ported to cloud-init). +## Swift / Prospector Support (ct-forge DO runners) + +The cloud-init now installs the Swift toolchain (/opt/swift, PATH + LD_LIBRARY_PATH in runner service) to support prospector-client (and future Swift packages) builds/tests on the linux ct-forge runners. + +- Workflow in prospector uses `runs-on: [self-hosted, linux, do, ct-forge]` for client package verify (build + test). +- prospector-ui (SwiftUI) and the macOS app note: require macOS runner or remote Xcode (existing build-tools remote to plum-style hosts). Linux for client only in MVP. +- Golden image + cloud-init updated; re-provision runners via terraform apply to roll out Swift support. +- Publish jobs can use the `publish` label variant for registry pushes on tags (SPM primarily via git tags on ct-forge; Forgejo Swift registry available per forge setup). + +See the prospector README and plan.md for full MVP scope, GPU on-demand (separate DO droplets via provision script), and LP backend integration (the runners are for CI of the client code). + +This extends the module for the restructured @prospector (Swift client + macOS app) without duplicating infra. + Apply this module, scale as needed for publishes, enjoy clean on-demand horizontally scaled ct-forge runners on DO.