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> |
||
|---|---|---|
| .. | ||
| scripts | ||
| auto-main-release-tag.yml | ||
| ci-canary-gate.yml | ||
| ci-change-audit.yml | ||
| ci-post-release-validation.yml | ||
| ci-provider-connectivity.yml | ||
| ci-queue-hygiene.yml | ||
| ci-reproducible-build.yml | ||
| ci-rollback.yml | ||
| ci-run.yml | ||
| ci-supply-chain-provenance.yml | ||
| deploy-web.yml | ||
| docs-deploy.yml | ||
| feature-matrix.yml | ||
| main-branch-flow.md | ||
| nightly-all-features.yml | ||
| pages-deploy.yml | ||
| pr-auto-response.yml | ||
| pr-check-stale.yml | ||
| pr-check-status.yml | ||
| pr-intake-checks.yml | ||
| pr-label-policy-check.yml | ||
| pr-labeler.yml | ||
| pub-docker-img.yml | ||
| pub-prerelease.yml | ||
| pub-release.yml | ||
| README.md | ||
| release-build.yml | ||
| sec-audit.yml | ||
| sec-codeql.yml | ||
| sec-vorpal-reviewdog.yml | ||
| sync-contributors.yml | ||
| test-benchmarks.yml | ||
| test-e2e.yml | ||
| test-fuzz.yml | ||
| test-self-hosted.yml | ||
| workflow-sanity.yml | ||
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:
- Keep runnable workflow entry files at
.github/workflows/root. - Keep workflow-only helper scripts under
.github/workflows/scripts/. - 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