zeroclaw/.github/workflows
jordanthejet 5dfa722738 ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization
Consolidate redundant Rust compilation jobs to cut PR cycle time from 2+ hours
to ~30 minutes by reducing parallel cold compilations and upgrading runners.

CI Run (ci-run.yml):
- Merge lint + workspace-check + package-check → quality-gate (25min, 8vcpu)
- Merge test + build → test-and-build (30min, 8vcpu)
- Unify cache keys: prefix-key=zeroclaw-ci-v1, shared-key=runner.os-rust
- Update ci-required gate, lint-feedback deps to reference new job names

Security Audit (sec-audit.yml):
- Merge audit + deny + security-regressions → rust-security (25min, 8vcpu)
- Merge sbom + unsafe-debt → compliance (lightweight runner)
- Add fast-path: non-Rust PRs skip Rust compilation entirely

Frequency optimization (off PR path):
- sec-codeql.yml: push-to-main + weekly only (was PR + push)
- ci-reproducible-build.yml: push-to-main + weekly only (was PR + push)
- ci-change-audit.yml: push-to-main only (was PR + push)

Runner upgrades:
- All Rust compilation jobs: 2vcpu → blacksmith-8vcpu-ubuntu-2404
- ci-supply-chain-provenance, test-fuzz: upgraded to 8vcpu
- test-e2e: upgraded to 8vcpu, fixed env indentation bug

Feature matrix (feature-matrix.yml):
- Non-default lanes (whatsapp-web, browser-native, nightly-all-features)
  skip on compile profile, run on nightly only
- resolve-profile + summary jobs use ubuntu-latest (no Rust compilation)

Docs/scripts:
- lint_feedback.js: update job name references for quality-gate
- required-check-mapping.md: document new consolidated job names
- ci-map.md: update trigger map, triage guide, maintenance rules
- self-hosted-runner-remediation.md: update job name reference

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 15:51:07 -05:00
..
scripts ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
auto-main-release-tag.yml feat(ci): add auto-main-release-tag workflow 2026-03-05 13:27:13 -05:00
ci-canary-gate.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
ci-change-audit.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
ci-post-release-validation.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
ci-provider-connectivity.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
ci-queue-hygiene.yml ci: prioritize release branch runs across queue 2026-03-03 00:14:49 +08:00
ci-reproducible-build.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
ci-rollback.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
ci-run.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
ci-supply-chain-provenance.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
deploy-web.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
docs-deploy.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
feature-matrix.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
main-branch-flow.md chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
nightly-all-features.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
pages-deploy.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
pr-auto-response.yml ci: route lightweight jobs to aws-india cpu40 runners 2026-03-02 22:47:22 +08:00
pr-check-stale.yml ci: route lightweight jobs to aws-india cpu40 runners 2026-03-02 22:47:22 +08:00
pr-check-status.yml ci: route lightweight jobs to aws-india cpu40 runners 2026-03-02 22:47:22 +08:00
pr-intake-checks.yml ci: route lightweight jobs to aws-india cpu40 runners 2026-03-02 22:47:22 +08:00
pr-label-policy-check.yml ci: route lightweight jobs to aws-india cpu40 runners 2026-03-02 22:47:22 +08:00
pr-labeler.yml ci: route lightweight jobs to aws-india cpu40 runners 2026-03-02 22:47:22 +08:00
pub-docker-img.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
pub-prerelease.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
pub-release.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
README.md Remove CI owner approval gate and refresh workflow docs 2026-02-28 20:00:54 +08:00
release-build.yml fix(ci): move activate toolchain PATH before ensure_cargo_component 2026-03-05 13:50:08 -05:00
sec-audit.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
sec-codeql.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
sec-vorpal-reviewdog.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
sync-contributors.yml ci: route lightweight jobs to aws-india cpu40 runners 2026-03-02 22:47:22 +08:00
test-benchmarks.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
test-e2e.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
test-fuzz.yml ci: consolidate CI/CD pipeline — 6 Rust jobs → 2, unified cache, frequency optimization 2026-03-05 15:51:07 -05:00
test-self-hosted.yml chore: remove Linear and Hetzner integrations (replay #2809) 2026-03-05 02:17:32 -05:00
workflow-sanity.yml ci: route lightweight jobs to aws-india cpu40 runners 2026-03-02 22:47:22 +08:00

Workflow Directory Layout

GitHub Actions only loads workflow entry files from:

  • .github/workflows/*.yml
  • .github/workflows/*.yaml

Subdirectories are not valid locations for workflow entry files.

Repository convention:

  1. Keep runnable workflow entry files at .github/workflows/ root.
  2. Keep workflow-only helper scripts under .github/workflows/scripts/.
  3. Keep cross-tooling/local CI scripts under scripts/ci/ when they are used outside Actions.

Workflow behavior documentation in this directory:

  • .github/workflows/main-branch-flow.md

Current workflow helper scripts:

  • .github/workflows/scripts/ci_license_file_owner_guard.js
  • .github/workflows/scripts/lint_feedback.js
  • .github/workflows/scripts/pr_auto_response_contributor_tier.js
  • .github/workflows/scripts/pr_auto_response_labeled_routes.js
  • .github/workflows/scripts/pr_check_status_nudge.js
  • .github/workflows/scripts/pr_intake_checks.js
  • .github/workflows/scripts/pr_labeler.js
  • .github/workflows/scripts/test_benchmarks_pr_comment.js

Release/CI policy assets introduced for advanced delivery lanes:

  • .github/release/nightly-owner-routing.json
  • .github/release/canary-policy.json
  • .github/release/prerelease-stage-gates.json