potiuk opened a new pull request, #75578: URL: https://github.com/apache/airflow/pull/75578
A run that concurrency cancels still runs the `always()` **CI passed** job, and that job fails the required check. When a stacked PR's base and head are force-pushed together, GitHub sends two `synchronize` events for the same commit; one of the two runs is cancelled seconds in, and its failed **CI passed** sits next to the passing one of its twin (seen on #74822, run 40114451791). With this change, a run whose jobs were cancelled and none failed reports as **CI passed (run cancelled)**, a name no ruleset requires, and does not fail. Such a run never reports **CI passed** at all, so the merge stays blocked until another run of the commit, or a re-run, reports it. Any failed job still fails **CI passed** as before. The fork CI reconciler's tampering check now accepts the new name among the jobs every gated run starts; without it, a gated PR's run that a newer push cancelled would count as project CI work. Checked locally: prek hooks on the changed files (workflow sync, CI gate needs, yamllint, zizmor, markdownlint), actionlint on the changed jobs, and the reconciler tests. --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes (please specify the tool below) 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]
