mirror of
https://github.com/rustfs/rustfs.git
synced 2026-10-27 14:27:10 +00:00
fca83c72e4
* ci: move compile-free and prebuilt-binary lanes to hosted runners Standard GitHub-hosted runners are free for this public repository, while every sm-standard minute is paid self-hosted capacity. Move the jobs that never compile (quick checks, typos, scope selection, the required-checks aggregate, audit, closed-PR cancellation) and the two s3-tests lanes that only run the prebuilt debug binary to ubuntu-latest, drop the wget install the custom image needed for typos, and move the upgrade-compatibility workflow, whose build shape already runs on hosted runners in e2e-distributed, with renamed cache keys so the hosted and self-hosted images never share a rust-cache entry. Gate the package summary job on resolve having run, so development builds stop starting a pod to report a skipped job. * docs(ci): document runner billing and placement rules Record in .github/workflows/README.md which runner labels GitHub bills (none for this public repository), which ones RustFS pays for, the rule for when a job may leave ubuntu-latest, the rust-cache single-writer and same-image constraints, the patterns that have leaked self-hosted minutes, and a checklist for new or moved jobs. Point to it from .github/AGENTS.md, docs/testing/ci-gates.md and the ci.yml placement comment so the rule has a single home.
1.7 KiB
1.7 KiB
GitHub Workflow Instructions
Applies to .github/.
Pull Requests
PR conventions (English title/body, template usage, --body-file with the
heredoc pattern, review-thread etiquette) live in the root AGENTS.md under
"Git and PR Baseline" — that section is the single normative home; do not
duplicate its rules here.
Workflow Changes
- Any change touching
.github/workflows/must passactionlint(run from the repo root) with zero findings before commit/PR. Install viabrew install actionlint, or the download script in the actionlint repo (rhysd/actionlint);make pre-prdoes not cover workflow files, so this is the required check for them. - Custom self-hosted runner labels (
sm-standard-*,dind-*) are declared in.github/actionlint.yaml. When introducing a newruns-on:label, declare it there in the same change. Never use the config or-ignoreto silence real findings — fix the workflow (rootAGENTS.md: make checks pass by fixing the cause, not by weakening the gate). - If
shellcheckis installed, actionlint also lintsrun:scripts; treat those findings as part of the gate. - Runner placement and billing rules live in
.github/workflows/README.md. A new job defaults toubuntu-latest(free for this public repository); a self-hostedruns-onneeds one of the reasons listed there, stated in a comment next to it, and arust-cachekey is never shared between the hosted and self-hosted images.
CI Alignment
When changing CI-sensitive behavior, keep local validation aligned with
.github/workflows/ci.yml. Read the workflow file directly for the current
gate steps — do not rely on (or add) a copied command list here; copies go
stale. make pre-pr is the local equivalent of the main gate.