potiuk opened a new pull request, #66348:
URL: https://github.com/apache/airflow/pull/66348
## Summary
The combined `ci-amd-arm.yml` alternated ARM and AMD on the canary slot via a
runtime `RUNNERS_TYPE_CROSS_MAPPING` lookup of the previous workflow run's
labels. That worked but tied the two architectures together — one canary slot
had to flip between them, badges showed whichever ran last, notifications
spoke for both, and a runtime API call decided the platform on every push.
This change splits the file into a reusable pipeline + two thin wrappers:
- **`_ci-pipeline.yml`** — reusable workflow (`workflow_call`) with the
entire pipeline. Takes `platform` and `runner-type` as inputs;
`build-info` echoes the inputs instead of computing them via
cross-mapping. Single source of truth — no per-platform duplication.
- **`ci-arm.yml`** — slim wrapper. Schedule (canary cron) +
workflow_dispatch only. Calls `_ci-pipeline.yml` with
`platform: linux/arm64`.
- **`ci-amd.yml`** — slim wrapper. pull_request + push (to `v3-N-test` etc)
+ workflow_dispatch. Calls `_ci-pipeline.yml` with
`platform: linux/amd64`. **No schedule for now**; ARM keeps the canary
slot. Add a `schedule:` block here if/when AMD should also act as a
scheduled canary — the two workflows run in parallel with separate
concurrency groups.
The runtime cross-mapping in `selective_checks.runner_type` is left in place
because `is_disabled_integration` still consumes it; the API lookup against
the now-removed `ci-amd-arm.yml` returns nothing and falls back to AMD,
which is harmless. Removing the cross-mapping entirely is a follow-up.
## Reference updates (every consumer of the old file name)
- `README.md` and `dev/update_github_branch_config.py`: badges → `ci-amd.yml`
(the workflow that runs on every push to main)
- `.github/workflows/ci-notification.yml`: `workflow-id` → `ci-amd.yml`
- `.github/workflows/e2e-flaky-tests-report.yml`: `WORKFLOW_NAME` →
`ci-amd.yml`
- `scripts/ci/analyze_e2e_flaky_tests.py`: default `WORKFLOW_NAME` →
`ci-amd.yml`
- `dev/README_AIRFLOW3_DEV.md`, `dev/README_RELEASE_AIRFLOW.md`: release-cut
verification URL → `ci-amd.yml`
- `generated/PYPI_README.md`: regenerated from `README.md`
- `.github/workflows/update-constraints-on-push*.yml`,
`release_dockerhub_image.yml`: comments referring back to the old file →
`_ci-pipeline.yml`
## Test plan
- [x] `prek run yamllint` clean on all changed workflow files
- [x] `prek run zizmor` clean (template-injection on the print-platform
job's `inputs.platform` was hoisted to env; `secrets: inherit` replaced
with explicit `DOCS_AWS_*` / `SLACK_BOT_TOKEN` forwarding)
- [x] `prek run --files <changed>` clean across all hooks
- [x] All 162 `test_selective_checks.py` tests pass (the `runner_type`
tests still pass since they mock `requests.get` and don't depend on the
real workflow file existing)
- [ ] Smoke-test in CI: opening this PR will trigger `ci-amd.yml`. The ARM
canary will fire on its next scheduled cron tick — if both look healthy,
ready for review.
## Why draft
Posting as draft for an initial review of the architecture before letting
CI exercise it for the first time. Once the AMD run on this PR completes
green, I'll mark it ready for review.
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes — Claude Code (Opus 4.7)
Generated-by: Claude Code (Opus 4.7) following [the
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
--
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]