Skip to content

Restore AMD scheduled canary, split README badges, fix Slack-state collision#66662

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:restore-amd-schedule-and-split-badges
May 10, 2026
Merged

Restore AMD scheduled canary, split README badges, fix Slack-state collision#66662
potiuk merged 1 commit into
apache:mainfrom
potiuk:restore-amd-schedule-and-split-badges

Conversation

@potiuk
Copy link
Copy Markdown
Member

@potiuk potiuk commented May 10, 2026

Summary

PR #66348 split the combined ci-amd-arm.yml into per-platform wrappers and intentionally deferred re-adding a schedule trigger to ci-amd.yml ("No schedule for now; ARM keeps the canary slot. Add a schedule: block here if/when AMD should also act as a scheduled canary"). Three things fell out of that:

  1. The "Tests (AMD)" badge on the README pointed at a workflow that hadn't run on main since 2025-10-25 (it now only runs on PRs and release-branch pushes), so the badge was perpetually stale.
  2. The notify-slack job at the bottom of ci-amd.yml is gated on github.event_name == 'schedule' and was therefore dead code: there was no schedule trigger left to fire it.
  3. main on AMD had no scheduled CI monitor at all (ci-notification.yml only watches v3-2-test × ci-amd.yml, and the comment there assumes ARM is reported by its own notify-slack).

Changes

  • ci-amd.yml — restore the previous AMD canary cron at minute :58 of the same hours ARM uses, so the two scheduled runs don't compete for runners at exactly the same minute.
  • README.md — split the main build-status row into two badges (AMD + ARM), drop the obsolete 2.x row (still using the legacy ci.yml), keep 3.x AMD-only (ARM has no v3-2-test schedule). Click-throughs now go to the workflow page rather than the catch-all /actions URL.
  • ci-amd.yml, ci-arm.yml, ci-image-checks.yml — disambiguate the slack-state artifact names. Before this PR the latent collision did not bite (AMD's notify-slack never fired); restoring the AMD schedule activates it. Each platform now writes its own slack-state-{tests,inventory}-<branch>-{amd,arm} artifact so the de-dup tracker in scripts/ci/slack_notification_state.py keeps independent state per platform.
  • scripts/ci/prek/check_ci_workflows_in_sync.py — allow the new AMD-only schedule block and the per-platform artifact-name suffix as documented divergences.
  • generated/PYPI_README.md — regenerated automatically by the generate-pypi-readme prek hook to mirror README.md.

related: #66348

Test plan

  • Confirm both badges render in the README preview after merge
  • Confirm ci-amd.yml fires on schedule (next slot at 01:58 / 07:58 / 13:58 / 19:58 UTC) and that the notify-slack job runs
  • Confirm Slack messages for AMD and ARM use independent state artifacts (no spurious "still not fixed" or "all passing" cross-talk after the first scheduled cycle of each)

Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Opus 4.7)

Generated-by: Claude Code (Opus 4.7) following the guidelines

…llision

PR apache#66348 split the combined ci-amd-arm.yml into per-platform wrappers and
intentionally deferred re-adding a schedule trigger to ci-amd.yml ('No
schedule for now; ARM keeps the canary slot. Add a schedule: block here
if/when AMD should also act as a scheduled canary'). As a result:

- The AMD 'Tests (AMD)' badge on the README pointed at a workflow that
  hadn't run on main since 2025-10-25 (it now only runs on PRs and
  release-branch pushes), so the badge was stale.
- The notify-slack job at the bottom of ci-amd.yml is gated on
  github.event_name == 'schedule' and was therefore dead code: there
  was no schedule trigger left to fire it.
- main on AMD had no scheduled CI monitor at all (ci-notification.yml
  only watches v3-2-test x ci-amd.yml, and the comment there assumes
  ARM is reported by its own notify-slack).

This change:

1. Restores the previous AMD canary cron in ci-amd.yml at minute :58 of
   the same hours ARM uses, so the two scheduled runs don't compete for
   runners at exactly the same minute.
2. Splits the README build-status row for main into two badges (AMD and
   ARM), drops the obsolete 2.x row (still using the legacy ci.yml), and
   keeps 3.x AMD-only (ARM has no v3-2-test schedule). Click-throughs go
   to the workflow page rather than the catch-all /actions URL.
3. Disambiguates the slack-state artifact names that ci-amd.yml,
   ci-arm.yml, and ci-image-checks.yml share. Before this PR the latent
   collision did not bite (AMD's notify-slack never fired); restoring
   the AMD schedule activates it. Each platform now writes its own
   slack-state-{tests,inventory}-<branch>-{amd,arm} artifact so the
   de-dup tracker in scripts/ci/slack_notification_state.py keeps
   independent state per platform.
4. Updates scripts/ci/prek/check_ci_workflows_in_sync.py to allow the
   new AMD-only schedule block and the per-platform artifact-name
   suffix as documented divergences.

generated/PYPI_README.md is regenerated automatically by the
generate-pypi-readme prek hook to mirror README.md.
@boring-cyborg boring-cyborg Bot added area:dev-tools backport-to-v3-2-test Mark PR with this label to backport to v3-2-test branch labels May 10, 2026
@potiuk potiuk merged commit 022e35d into apache:main May 10, 2026
115 checks passed
@potiuk potiuk deleted the restore-amd-schedule-and-split-badges branch May 10, 2026 18:22
@github-actions
Copy link
Copy Markdown
Contributor

Backport failed to create: v3-2-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
v3-2-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 022e35d v3-2-test

This should apply the commit to the v3-2-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

potiuk added a commit that referenced this pull request May 10, 2026
…llision (#66662) (#66665)

PR #66348 split the combined ci-amd-arm.yml into per-platform wrappers and
intentionally deferred re-adding a schedule trigger to ci-amd.yml ('No
schedule for now; ARM keeps the canary slot. Add a schedule: block here
if/when AMD should also act as a scheduled canary'). As a result:

- The AMD 'Tests (AMD)' badge on the README pointed at a workflow that
  hadn't run on main since 2025-10-25 (it now only runs on PRs and
  release-branch pushes), so the badge was stale.
- The notify-slack job at the bottom of ci-amd.yml is gated on
  github.event_name == 'schedule' and was therefore dead code: there
  was no schedule trigger left to fire it.
- main on AMD had no scheduled CI monitor at all (ci-notification.yml
  only watches v3-2-test x ci-amd.yml, and the comment there assumes
  ARM is reported by its own notify-slack).

This change:

1. Restores the previous AMD canary cron in ci-amd.yml at minute :58 of
   the same hours ARM uses, so the two scheduled runs don't compete for
   runners at exactly the same minute.
2. Splits the README build-status row for main into two badges (AMD and
   ARM), drops the obsolete 2.x row (still using the legacy ci.yml), and
   keeps 3.x AMD-only (ARM has no v3-2-test schedule). Click-throughs go
   to the workflow page rather than the catch-all /actions URL.
3. Disambiguates the slack-state artifact names that ci-amd.yml,
   ci-arm.yml, and ci-image-checks.yml share. Before this PR the latent
   collision did not bite (AMD's notify-slack never fired); restoring
   the AMD schedule activates it. Each platform now writes its own
   slack-state-{tests,inventory}-<branch>-{amd,arm} artifact so the
   de-dup tracker in scripts/ci/slack_notification_state.py keeps
   independent state per platform.
4. Updates scripts/ci/prek/check_ci_workflows_in_sync.py to allow the
   new AMD-only schedule block and the per-platform artifact-name
   suffix as documented divergences.

generated/PYPI_README.md is regenerated automatically by the
generate-pypi-readme prek hook to mirror README.md.

(cherry picked from commit 022e35d)
vatsrahul1001 pushed a commit that referenced this pull request May 20, 2026
…llision (#66662) (#66665)

PR #66348 split the combined ci-amd-arm.yml into per-platform wrappers and
intentionally deferred re-adding a schedule trigger to ci-amd.yml ('No
schedule for now; ARM keeps the canary slot. Add a schedule: block here
if/when AMD should also act as a scheduled canary'). As a result:

- The AMD 'Tests (AMD)' badge on the README pointed at a workflow that
  hadn't run on main since 2025-10-25 (it now only runs on PRs and
  release-branch pushes), so the badge was stale.
- The notify-slack job at the bottom of ci-amd.yml is gated on
  github.event_name == 'schedule' and was therefore dead code: there
  was no schedule trigger left to fire it.
- main on AMD had no scheduled CI monitor at all (ci-notification.yml
  only watches v3-2-test x ci-amd.yml, and the comment there assumes
  ARM is reported by its own notify-slack).

This change:

1. Restores the previous AMD canary cron in ci-amd.yml at minute :58 of
   the same hours ARM uses, so the two scheduled runs don't compete for
   runners at exactly the same minute.
2. Splits the README build-status row for main into two badges (AMD and
   ARM), drops the obsolete 2.x row (still using the legacy ci.yml), and
   keeps 3.x AMD-only (ARM has no v3-2-test schedule). Click-throughs go
   to the workflow page rather than the catch-all /actions URL.
3. Disambiguates the slack-state artifact names that ci-amd.yml,
   ci-arm.yml, and ci-image-checks.yml share. Before this PR the latent
   collision did not bite (AMD's notify-slack never fired); restoring
   the AMD schedule activates it. Each platform now writes its own
   slack-state-{tests,inventory}-<branch>-{amd,arm} artifact so the
   de-dup tracker in scripts/ci/slack_notification_state.py keeps
   independent state per platform.
4. Updates scripts/ci/prek/check_ci_workflows_in_sync.py to allow the
   new AMD-only schedule block and the per-platform artifact-name
   suffix as documented divergences.

generated/PYPI_README.md is regenerated automatically by the
generate-pypi-readme prek hook to mirror README.md.

(cherry picked from commit 022e35d)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dev-tools backport-to-v3-2-test Mark PR with this label to backport to v3-2-test branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants