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]

Reply via email to