potiuk opened a new pull request, #75420:
URL: https://github.com/apache/airflow/pull/75420
Release-prep branches ran the full AMD + ARM CI on every push. While a
release is prepared,
backports land in bursts: in the week of 15–21 October `v3-4-test` started
177 full runs,
133 of which were cancelled by the next push after already using hundreds of
runner-minutes
each (roughly 100–130k runner-minutes that week). Each backport PR has
already run CI
against the branch, so the branch needs a full run of its HEAD a few times a
day, not one
per merged commit.
What changes:
- **Full runs on a schedule.** The new `release-branch-ci.yml` (on `main`)
starts
`ci-amd.yml` at 04:43/16:43 UTC and `ci-arm.yml` at 10:43/22:43 UTC via
`workflow_dispatch`
on each release-prep / providers branch with a commit in the last 7 days.
It skips a branch
when the last full run already tested HEAD and succeeded (or is still
running), and starts
it again when that run failed or was cancelled. Release managers can start
it by hand for
a branch (`-f branch=vX-Y-test`).
- **Incremental tests on push.** Pushes to those branches still start `Tests
(AMD)`, but it
only tests what changed since the last successful run of the workflow on
the branch
(push or full), selected as for a PR (`breeze ci selective-check
--selective-tests-on-push
--push-base-commit`). Push runs have their own concurrency group per
branch: a newer push
cancels the older push run and then also covers its changes; a failed
run's changes are
tested again; a push never cancels a full run. With no successful run to
build on, a push
runs all tests.
- **No-op canaries finish at once.** A scheduled canary whose commit already
had a successful
full run skips all jobs (no Slack post). A scheduled run no longer cancels
a run in progress.
- Docs: release-manager steps for checking the full run of HEAD before
cutting an RC
(`README_RELEASE_AIRFLOW.md`), and the CI docs (`04_selective_checks.md`,
`05_workflows.md`).
Rollout: a release branch only behaves this way once this change is
backported to it, since
runs use the branch's own workflow files. Until then it keeps building in
full on push, and
`release-branch-ci.yml` adds its scheduled full runs on top. It should be
backported to the
active release branches (`v3-4-test` first).
Known limitations, unchanged by this PR:
- Dispatched runs on `providers-*`, `chart/*` and `airflow-ctl/*` branches
are not canary
runs, just as their push runs were not before: the canary branch check
only matches
`v*-test`.
- Branches cut before `ci-amd.yml` / `ci-arm.yml` existed (e.g.
`airflow-ctl/v0-1-test`) cannot
be dispatched; `release-branch-ci.yml` logs a warning for them and carries
on.
Related: #74820 changes the same selective-checks code for fork pushes
(AIP-120); whichever
lands second needs a rebase.
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes — Claude Code (Opus 5)
Generated-by: Claude Code (Opus 5) following [the
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]