diff --git a/.github/workflows/ci-amd.yml b/.github/workflows/ci-amd.yml index 43276945a9c69..3e7635a6a94c6 100644 --- a/.github/workflows/ci-amd.yml +++ b/.github/workflows/ci-amd.yml @@ -26,10 +26,11 @@ name: Tests (AMD) on: # yamllint disable-line rule:truthy schedule: - # Mirror of the previous AMD canary cron from before the AMD/ARM split (PR #66348), - # 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 * * *' + # AMD canary runs 2x/day (01:58, 13:58), interleaved with ARM's 2x/day (07:28, 19:28) + # in `ci-arm.yml` so a full-matrix canary still runs roughly every ~6h (alternating + # architecture) while halving the scheduled AMD compute. The `:58` vs ARM's `:28` + # offset keeps the two from competing for runners at exactly the same minute. + - cron: '58 1,13 * * *' pull_request: branches: - main diff --git a/.github/workflows/ci-arm.yml b/.github/workflows/ci-arm.yml index 688408aa8e49d..8c752cbb19179 100644 --- a/.github/workflows/ci-arm.yml +++ b/.github/workflows/ci-arm.yml @@ -26,7 +26,11 @@ name: Tests (ARM) on: # yamllint disable-line rule:truthy schedule: - - cron: '28 1,3,7,9,13,15,19,21 * * *' + # ARM canary runs 2x/day (07:28, 19:28), interleaved with AMD's 2x/day (01:58, 13:58) + # in `ci-amd.yml` so a full-matrix canary still runs roughly every ~6h (alternating + # architecture). The `:28` vs AMD's `:58` offset keeps the two from competing for + # runners at exactly the same minute. + - cron: '28 7,19 * * *' push: # Post-merge pushes to release-prep / providers branches run on both # AMD and ARM (the matching block lives in the other wrapper too — diff --git a/scripts/ci/prek/check_ci_workflows_in_sync.py b/scripts/ci/prek/check_ci_workflows_in_sync.py index b64600cd16576..d6116d856b8bf 100755 --- a/scripts/ci/prek/check_ci_workflows_in_sync.py +++ b/scripts/ci/prek/check_ci_workflows_in_sync.py @@ -107,14 +107,19 @@ # file and must NOT appear in the other. The blocks are stripped before # diffing so they don't show up as drift. ARM_ONLY_BLOCK = """ schedule: - - cron: '28 1,3,7,9,13,15,19,21 * * *' + # ARM canary runs 2x/day (07:28, 19:28), interleaved with AMD's 2x/day (01:58, 13:58) + # in `ci-amd.yml` so a full-matrix canary still runs roughly every ~6h (alternating + # architecture). The `:28` vs AMD's `:58` offset keeps the two from competing for + # runners at exactly the same minute. + - cron: '28 7,19 * * *' """ AMD_ONLY_BLOCK = """ schedule: - # Mirror of the previous AMD canary cron from before the AMD/ARM split (PR #66348), - # 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 * * *' + # AMD canary runs 2x/day (01:58, 13:58), interleaved with ARM's 2x/day (07:28, 19:28) + # in `ci-arm.yml` so a full-matrix canary still runs roughly every ~6h (alternating + # architecture) while halving the scheduled AMD compute. The `:58` vs ARM's `:28` + # offset keeps the two from competing for runners at exactly the same minute. + - cron: '58 1,13 * * *' pull_request: branches: - main