2.8 KiB
2.8 KiB
CI Workflow Map
This document explains what each GitHub workflow does, when it runs, and whether it should block merges.
Merge-Blocking vs Optional
Merge-blocking checks should stay small and deterministic. Optional checks are useful for automation and maintenance, but should not block normal development.
Merge-Blocking
.github/workflows/ci.yml(CI)- Purpose: Rust validation (
fmt,clippy,test, release build smoke) - Merge gate:
CI Required Gate
- Purpose: Rust validation (
.github/workflows/workflow-sanity.yml(Workflow Sanity)- Purpose: lint GitHub workflow files (
actionlint, tab checks) - Recommended for workflow-changing PRs
- Purpose: lint GitHub workflow files (
Non-Blocking but Important
.github/workflows/docker.yml(Docker)- Purpose: PR docker smoke check and publish images on
main/tag pushes
- Purpose: PR docker smoke check and publish images on
.github/workflows/security.yml(Security Audit)- Purpose: dependency advisories (
cargo audit) and policy/license checks (cargo deny)
- Purpose: dependency advisories (
.github/workflows/release.yml(Release)- Purpose: build tagged release artifacts and publish GitHub releases
Optional Repository Automation
.github/workflows/labeler.yml(PR Labeler)- Purpose: path labels + size labels
.github/workflows/auto-response.yml(Auto Response)- Purpose: first-time contributor onboarding messages
.github/workflows/stale.yml(Stale)- Purpose: stale issue/PR lifecycle automation
.github/workflows/pr-hygiene.yml(PR Hygiene)- Purpose: nudge stale-but-active PRs to rebase/re-run required checks before queue starvation
Trigger Map
CI: push tomain/develop, PRs tomainDocker: push tomain, tag push (v*), PRs touching docker/workflow files, manual dispatchRelease: tag push (v*)Security Audit: push tomain, PRs tomain, weekly scheduleWorkflow Sanity: PR/push when.github/workflows/**,.github/*.yml, or.github/*.yamlchangePR Labeler:pull_request_targetlifecycle eventsAuto Response: issue opened,pull_request_targetopenedStale: daily schedule, manual dispatchPR Hygiene: every 12 hours schedule, manual dispatch
Fast Triage Guide
CI Required Gatefailing: start with.github/workflows/ci.yml.- Docker failures on PRs: inspect
.github/workflows/docker.ymlpr-smokejob. - Release failures on tags: inspect
.github/workflows/release.yml. - Security failures: inspect
.github/workflows/security.ymlanddeny.toml. - Workflow syntax/lint failures: inspect
.github/workflows/workflow-sanity.yml.
Maintenance Rules
- Keep merge-blocking checks deterministic and reproducible (
--lockedwhere applicable). - Prefer explicit workflow permissions (least privilege).
- Use path filters for expensive workflows when practical.
- Avoid mixing onboarding/community automation with merge-gating logic.