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]

Reply via email to