This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 0b8c6431949 ci: also build ARM on pushes to release-prep / providers 
branches (#66668)
0b8c6431949 is described below

commit 0b8c6431949f69348bc8eccdd1cdc7a4bbc0f134
Author: Jarek Potiuk <[email protected]>
AuthorDate: Mon May 11 01:03:35 2026 +0200

    ci: also build ARM on pushes to release-prep / providers branches (#66668)
    
    Until now, post-merge pushes to v[0-9]+-[0-9]+-test and
    providers-*/v* branches only triggered the AMD wrapper
    (`ci-amd.yml`); ARM coverage on those branches was limited to the
    cron-driven canary. Add the same `push:` block to `ci-arm.yml`
    so both architectures build whenever a release-prep / providers
    branch advances.
    
    `main` is intentionally NOT in the ARM push list — main pushes
    stay AMD-only via `ci-amd.yml` and ARM main coverage continues
    to come from the canary cron. This avoids doubling the ARM
    runner load on the high-traffic main branch while still surfacing
    ARM regressions on every release-prep / providers commit.
    
    Knock-on changes:
    - ci-amd.yml: reorder `pull_request:` to come before `push:` so
      the AMD-only schedule + pull_request remains a contiguous block
      for the strip mechanism in `check-ci-workflows-in-sync`. Same
      comment text added to its `push:` block as ci-arm.yml's so
      the two read identically.
    - check_ci_workflows_in_sync.py: drop the `push:` block from
      `AMD_ONLY_BLOCK` (push is now shared between both wrappers and
      therefore must not be stripped from either side). Update item 3
      in the docstring to reflect the new trigger split.
    - README.md and generated/PYPI_README.md: add the ARM badge to
      the 3.x row alongside AMD (Main row already had both).
    
    Generated-by: Claude Code (Opus 4.7)
---
 .github/workflows/ci-amd.yml                  | 13 +++++++++----
 .github/workflows/ci-arm.yml                  |  9 +++++++++
 README.md                                     |  2 +-
 generated/PYPI_README.md                      |  2 +-
 scripts/ci/prek/check_ci_workflows_in_sync.py | 14 +++++++-------
 5 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/ci-amd.yml b/.github/workflows/ci-amd.yml
index 51b0c5bc2d3..1e79582747a 100644
--- a/.github/workflows/ci-amd.yml
+++ b/.github/workflows/ci-amd.yml
@@ -30,10 +30,6 @@ on:  # yamllint disable-line rule:truthy
     # offset by 30 min from ARM's `:28` slot in `ci-arm.yml` so the two 
scheduled
     # canaries don't compete for runners at exactly the same minute.
     - cron: '58 1,7,13,19 * * *'
-  push:
-    branches:
-      - v[0-9]+-[0-9]+-test
-      - providers-[a-z]+-?[a-z]*/v[0-9]+-[0-9]+
   pull_request:
     branches:
       - main
@@ -41,6 +37,15 @@ on:  # yamllint disable-line rule:truthy
       - v[0-9]+-[0-9]+-stable
       - providers-[a-z]+-?[a-z]*/v[0-9]+-[0-9]+
     types: [opened, reopened, synchronize, ready_for_review]
+  push:
+    # Post-merge pushes to release-prep / providers branches run on both
+    # AMD and ARM (the matching block lives in the other wrapper too —
+    # `check-ci-workflows-in-sync` enforces they stay identical). `main` is
+    # intentionally NOT in this list: main pushes stay AMD-only via
+    # `ci-amd.yml`; ARM main coverage is the cron-driven canary above.
+    branches:
+      - v[0-9]+-[0-9]+-test
+      - providers-[a-z]+-?[a-z]*/v[0-9]+-[0-9]+
   workflow_dispatch:
 permissions:
   # All other permissions are set to none by default
diff --git a/.github/workflows/ci-arm.yml b/.github/workflows/ci-arm.yml
index c488e79b5d1..2cf141afe7c 100644
--- a/.github/workflows/ci-arm.yml
+++ b/.github/workflows/ci-arm.yml
@@ -27,6 +27,15 @@ name: Tests (ARM)
 on:  # yamllint disable-line rule:truthy
   schedule:
     - cron: '28 1,3,7,9,13,15,19,21 * * *'
+  push:
+    # Post-merge pushes to release-prep / providers branches run on both
+    # AMD and ARM (the matching block lives in the other wrapper too —
+    # `check-ci-workflows-in-sync` enforces they stay identical). `main` is
+    # intentionally NOT in this list: main pushes stay AMD-only via
+    # `ci-amd.yml`; ARM main coverage is the cron-driven canary above.
+    branches:
+      - v[0-9]+-[0-9]+-test
+      - providers-[a-z]+-?[a-z]*/v[0-9]+-[0-9]+
   workflow_dispatch:
 permissions:
   # All other permissions are set to none by default
diff --git a/README.md b/README.md
index 3ca3a418e22..edbb7d29594 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@
 | Version | Build Status                                                       
                                                                                
             |
 
|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
 | Main    | [![Tests AMD 
main](https://github.com/apache/airflow/actions/workflows/ci-amd.yml/badge.svg)](https://github.com/apache/airflow/actions/workflows/ci-amd.yml)
 [![Tests ARM 
main](https://github.com/apache/airflow/actions/workflows/ci-arm.yml/badge.svg)](https://github.com/apache/airflow/actions/workflows/ci-arm.yml)
 |
-| 3.x     | [![Tests AMD 
3.2](https://github.com/apache/airflow/actions/workflows/ci-amd.yml/badge.svg?branch=v3-2-test)](https://github.com/apache/airflow/actions/workflows/ci-amd.yml)
 |
+| 3.x     | [![Tests AMD 
3.2](https://github.com/apache/airflow/actions/workflows/ci-amd.yml/badge.svg?branch=v3-2-test)](https://github.com/apache/airflow/actions/workflows/ci-amd.yml)
 [![Tests ARM 
3.2](https://github.com/apache/airflow/actions/workflows/ci-arm.yml/badge.svg?branch=v3-2-test)](https://github.com/apache/airflow/actions/workflows/ci-arm.yml)
 |
 
 
 
diff --git a/generated/PYPI_README.md b/generated/PYPI_README.md
index c7eef450ef7..50448156341 100644
--- a/generated/PYPI_README.md
+++ b/generated/PYPI_README.md
@@ -33,7 +33,7 @@ PROJECT BY THE `generate-pypi-readme` PREK HOOK. YOUR CHANGES 
HERE WILL BE AUTOM
 | Version | Build Status                                                       
                                                                                
             |
 
|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
 | Main    | [![Tests AMD 
main](https://github.com/apache/airflow/actions/workflows/ci-amd.yml/badge.svg)](https://github.com/apache/airflow/actions/workflows/ci-amd.yml)
 [![Tests ARM 
main](https://github.com/apache/airflow/actions/workflows/ci-arm.yml/badge.svg)](https://github.com/apache/airflow/actions/workflows/ci-arm.yml)
 |
-| 3.x     | [![Tests AMD 
3.2](https://github.com/apache/airflow/actions/workflows/ci-amd.yml/badge.svg?branch=v3-2-test)](https://github.com/apache/airflow/actions/workflows/ci-amd.yml)
 |
+| 3.x     | [![Tests AMD 
3.2](https://github.com/apache/airflow/actions/workflows/ci-amd.yml/badge.svg?branch=v3-2-test)](https://github.com/apache/airflow/actions/workflows/ci-amd.yml)
 [![Tests ARM 
3.2](https://github.com/apache/airflow/actions/workflows/ci-arm.yml/badge.svg?branch=v3-2-test)](https://github.com/apache/airflow/actions/workflows/ci-arm.yml)
 |
 
 
 
diff --git a/scripts/ci/prek/check_ci_workflows_in_sync.py 
b/scripts/ci/prek/check_ci_workflows_in_sync.py
index 1807f53b2d8..b64600cd165 100755
--- a/scripts/ci/prek/check_ci_workflows_in_sync.py
+++ b/scripts/ci/prek/check_ci_workflows_in_sync.py
@@ -27,9 +27,12 @@ Documented divergences:
 
 1. Header intro comment (different prose explaining what each file is for)
 2. Workflow ``name:`` — ``Tests (ARM)`` vs ``Tests (AMD)``
-3. Triggers — ARM = schedule + workflow_dispatch only; AMD = its own
-   schedule (offset from ARM's cron) + pull_request + push (to release
-   branches) + workflow_dispatch
+3. Triggers — ARM = its own schedule + push (to release-prep /
+   providers branches) + workflow_dispatch; AMD = its own schedule
+   (offset from ARM's cron) + the same push branches + pull_request +
+   workflow_dispatch. Both wrappers run on post-merge pushes to
+   stable / providers branches; only AMD runs on PRs (per-PR ARM
+   coverage stays cron-driven via the canary).
 4. ``concurrency.group`` prefix — ``ci-arm-`` vs ``ci-amd-``
 5. ``build-info`` outputs ``platform`` and ``runner-type`` — hardcoded per
    architecture (and the surrounding comment naming the "ARM/AMD copy")
@@ -112,10 +115,6 @@ AMD_ONLY_BLOCK = """  schedule:
     # offset by 30 min from ARM's `:28` slot in `ci-arm.yml` so the two 
scheduled
     # canaries don't compete for runners at exactly the same minute.
     - cron: '58 1,7,13,19 * * *'
-  push:
-    branches:
-      - v[0-9]+-[0-9]+-test
-      - providers-[a-z]+-?[a-z]*/v[0-9]+-[0-9]+
   pull_request:
     branches:
       - main
@@ -125,6 +124,7 @@ AMD_ONLY_BLOCK = """  schedule:
     types: [opened, reopened, synchronize, ready_for_review]
 """
 
+
 # The header comment block (between the `---` document marker and the
 # `name:` line) is intentionally different between files — each describes
 # what its own file is for. Collapse to a placeholder before diffing.

Reply via email to