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.
38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
# 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 pass `actionlint` (run from
|
|
the repo root) with zero findings before commit/PR. Install via
|
|
`brew install actionlint`, or the download script in the actionlint repo
|
|
(rhysd/actionlint); `make pre-pr` does 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 new `runs-on:` label,
|
|
declare it there in the same change. Never use the config or `-ignore` to
|
|
silence real findings — fix the workflow (root `AGENTS.md`: make checks
|
|
pass by fixing the cause, not by weakening the gate).
|
|
- If `shellcheck` is installed, actionlint also lints `run:` scripts; treat
|
|
those findings as part of the gate.
|
|
- Runner placement and billing rules live in `.github/workflows/README.md`.
|
|
A new job defaults to `ubuntu-latest` (free for this public repository);
|
|
a self-hosted `runs-on` needs one of the reasons listed there, stated in a
|
|
comment next to it, and a `rust-cache` key 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.
|