Imposed rule: Work of this type or tasks of this type on this component must also be applied everywhere else it should be applied.

CLI Release & Packaging Runbook

Audience: Release engineers and DevOps operators who build, sign, and ship the stella CLI. Scope: Release artifacts, the build pipeline, versioning and channels, signing and verification, online and air-gapped distribution, parity gating, and the release checklist.

This runbook describes how to build, sign, package, and distribute the Stella Ops CLI with Task Pack support. It covers connected and air-gapped workflows, SBOM generation, parity gating, and the distribution artifacts required by Sprint 43 (DEVOPS-CLI-43-001, DEPLOY-PACKS-43-001).

Currency note (2026-09-26). Sections 1 to 5 and 8 describe the Sprint 43 multi-platform pipeline design. The shipped publication path today is the stella-cli image, published by digest through the manually dispatched .gitea/workflows/stella-cli-publish.yml lane; see docs/runbooks/deploy/v1-publication-dispatch.md. Section 2 step 9, section 5.2 and section 6 were corrected against src/ on this date.


1 · Release Artifacts

ArtifactDescriptionNotes
stella-<version>-linux-x64.tar.gzLinux binary + completionsIncludes man pages, localization files.
stella-<version>-macos-universal.tar.gzmacOS universal binarySigned/notarized where applicable.
stella-<version>-windows-x64.zipWindows binary + PowerShell modulesCode-signed.
stella-cli-container:<version>OCI image with CLI + pack runtimeDeterministic rootfs (scratch/distroless).
SBOM (.cdx.json)CycloneDX SBOM per artifactGenerated via stella sbom generate or syft.
Checksums (SHA256SUMS)Aggregated digest listSigned with cosign.
Provenance (.intoto.jsonl)DSSE attestation (SLSA L2)Contains build metadata.
Release notesMarkdown summaryLinks to task packs docs, parity matrix.

2 · Build Pipeline

  1. Source checkout – pinned commit, reproducible environment (Docker).
  2. Dependency lock – dotnet restore, npm ci (for CLI frontends), ensure deterministic build flags.
  3. Build binaries – cross-platform targets with reproducible timestamps.
  4. Run tests – unit + integration (StellaOps.Cli.Tests, including CliDocumentationContractTests); the Task Pack verb group was deleted 2026-09-14 (SPRINT_20260914_003 JEF-4), so there are no pack commands to exercise.
  5. Generate SBOM – syft packages dist/stella-linux-x64 --output cyclonedx-json.
  6. Bundle – compress artifacts, include completions (bash, zsh, fish, PowerShell).
  7. Sign – cosign signatures for binaries, checksums, container image.
  8. Publish – upload to downloads.stella-ops.org, container registry, Packs Registry (for CLI container).
  9. Documentation parity – CliDocumentationContractTests (step 4) is the enforced command-truth gate; see section 6. No automated CLI-versus-Console parity gate runs.

CI must run in isolated environment (no network beyond allowlist). Cache dependencies for offline bundling.


3 · Versioning & Channels


4 · Signing & Verification

cosign verify-blob \
  --certificate-identity https://ci.stella-ops.org \
  --certificate-oidc-issuer https://fulcio.sigstore.dev \
  --signature stella-2025.10.0-linux-x64.sig \
  stella-2025.10.0-linux-x64.tar.gz

5 · Distribution

5.1 Online

5.2 Offline / Air-Gap

No stella subcommand packages the CLI itself. Carry the published stella-cli image into the sealed site by digest (for example docker save on the connected side and docker load on the sealed side), or copy the platform archives with their checksums and signatures.


6 · Parity Gating


7 · Localization & Documentation


8 · Release Checklist


Last updated: 2025-10-27 (Sprint 43).