44 schedule :
55 - cron : ' 0 7 * * *'
66 timezone : " Europe/London"
7- - cron : ' 0 6 * * 6' # 06:00 Saturday Europe/London; workflow gates to biweekly scale-training runs
8- timezone : " Europe/London"
97 push :
108 branches :
119 - ' pull-request/[0-9]+'
5351 - axlearn - run only the tests for axlearn
5452 options : [full, jax, te, maxtext, axlearn]
5553 default : full
56- SCALE_TRAINING :
57- type : boolean
58- description : " Whether to run scale-training specific tests."
59- default : false
60- required : false
6154
6255concurrency :
63- group : ${{ github.workflow }}-${{ github.event.schedule || github.run_id }}
64- cancel-in-progress : true
56+ group : ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
57+ cancel-in-progress : ${{ github.ref != 'refs/heads/main' }}
6558
6659permissions :
6760 contents : write # to fetch code and push branch
@@ -72,7 +65,6 @@ permissions:
7265
7366env :
7467 DEFAULT_MANIFEST_ARTIFACT_NAME : bumped-manifest
75- SCALE_TRAINING_BIWEEKLY_ANCHOR_BUILD_DATE : 2026-04-18
7668
7769jobs :
7870
8678 MANIFEST_BRANCH : ${{ steps.manifest-branch.outputs.MANIFEST_BRANCH }}
8779 MERGE_BUMPED_MANIFEST : ${{ steps.manifest-branch.outputs.MERGE_BUMBED_MANIFEST }}
8880 CUDA_IMAGE : ${{ steps.cuda-image.outputs.CUDA_IMAGE }}
89- SHOULD_RUN_WORKFLOW : ${{ steps.run-type.outputs.SHOULD_RUN_WORKFLOW }}
90- IS_SCALE_TRAINING : ${{ steps.run-type.outputs.IS_SCALE_TRAINING }}
9181 SUFFIX : ${{ steps.run-type.outputs.SUFFIX }}
9282 steps :
9383 - name : Cancel workflow run if the trigger is a draft PR
@@ -158,41 +148,8 @@ jobs:
158148 fi
159149 echo "CUDA_IMAGE=${CUDA_IMAGE}" >> $GITHUB_OUTPUT
160150
161- - name : Determine if scale-training run
162- id : run-type
163- shell : bash -x -e {0}
164- run : |
165- if [[ "${{ inputs.SCALE_TRAINING }}" == "true" ]]; then
166- echo "Manual scale-training run requested"
167- echo "SHOULD_RUN_WORKFLOW=true" >> $GITHUB_OUTPUT
168- echo "IS_SCALE_TRAINING=true" >> $GITHUB_OUTPUT
169- echo "SUFFIX=-scale-training" >> $GITHUB_OUTPUT
170- elif [[ "${{ github.event.schedule }}" == "0 6 * * 6" ]]; then
171- anchor_epoch=$(date -u -d "${{ env.SCALE_TRAINING_BIWEEKLY_ANCHOR_BUILD_DATE }}" +%s)
172- build_epoch=$(date -u -d "${{ steps.date.outputs.BUILD_DATE }}" +%s)
173- days_since_anchor=$(( (build_epoch - anchor_epoch) / 86400 ))
174-
175- if (( days_since_anchor >= 0 && days_since_anchor % 14 == 0 )); then
176- echo "Scheduled biweekly scale-training run for build date ${{ steps.date.outputs.BUILD_DATE }}"
177- echo "SHOULD_RUN_WORKFLOW=true" >> $GITHUB_OUTPUT
178- echo "IS_SCALE_TRAINING=true" >> $GITHUB_OUTPUT
179- echo "SUFFIX=-scale-training" >> $GITHUB_OUTPUT
180- else
181- echo "Skipping off-week scale-training schedule for build date ${{ steps.date.outputs.BUILD_DATE }}"
182- echo "SHOULD_RUN_WORKFLOW=false" >> $GITHUB_OUTPUT
183- echo "IS_SCALE_TRAINING=false" >> $GITHUB_OUTPUT
184- echo "SUFFIX=" >> $GITHUB_OUTPUT
185- fi
186- else
187- echo "SHOULD_RUN_WORKFLOW=true" >> $GITHUB_OUTPUT
188- echo "IS_SCALE_TRAINING=false" >> $GITHUB_OUTPUT
189- echo "SUFFIX=" >> $GITHUB_OUTPUT
190- fi
191-
192-
193151 bump-manifest :
194152 needs : metadata
195- if : ${{ needs.metadata.outputs.SHOULD_RUN_WORKFLOW == 'true' }}
196153 runs-on : ubuntu-22.04
197154 outputs :
198155 SOURCE_URLREFS : ${{ steps.source-urlrefs.outputs.SOURCE_URLREFS }}
@@ -249,8 +206,6 @@ jobs:
249206 - name : Create URL ref build args
250207 id : source-urlrefs
251208 shell : bash -x -e {0}
252- env :
253- GH_TOKEN : ${{ github.token}}
254209 run : |
255210 # converts manifest yaml to a json object of {SOFTWARE_NAME: URL#REF, ...}
256211 urlrefs=$(
@@ -266,27 +221,12 @@ jobs:
266221 urlrefs=$(echo "$urlrefs" | jq -c ". + {\"$PACKAGE\": \"$URLREF\"}")
267222 done
268223
269- # for scale training we need specific XLA and JAX refs
270- if [[ "${{ needs.metadata.outputs.IS_SCALE_TRAINING }}" == "true" ]]; then
271- BRANCH_INFO=$(python3 .github/workflows/scripts/extract_commits.py)
272- echo ${BRANCH_INFO} | jq
273- XLA_BRANCH=$(jq -r '.name' <<< "$BRANCH_INFO")
274- XLA_SHA=$(jq -r '.commit.sha' <<< "$BRANCH_INFO")
275- JAX_REPO=$(jq -r '.jax.repo' <<< "$BRANCH_INFO")
276- JAX_COMMIT=$(jq -r '.jax.commit' <<< "$BRANCH_INFO")
277- urlrefs=$(echo "$urlrefs" | jq -c ". + {\"XLA\": \"https://github.com/openxla/xla.git#${XLA_SHA}\"}")
278- urlrefs=$(echo "$urlrefs" | jq -c ". + {\"JAX\": \"${JAX_REPO}#${JAX_COMMIT}\"}")
279-
280- echo "Using XLA branch ${XLA_BRANCH} at sha ${XLA_SHA} for scale-training run"
281- echo "Using JAX repo ${JAX_REPO} at commit ${JAX_COMMIT} from STAGING.md for scale-training run"
282- fi
283224 echo "SOURCE_URLREFS=${urlrefs}" >> $GITHUB_OUTPUT
284225 echo "Final URLREF going to be used"
285226 echo ${urlrefs} | jq -c '.'
286227
287228 amd64 :
288229 needs : [metadata, bump-manifest]
289- if : ${{ needs.metadata.outputs.SHOULD_RUN_WORKFLOW == 'true' }}
290230 uses : ./.github/workflows/_ci.yaml
291231 with :
292232 ARCHITECTURE : amd64
@@ -299,7 +239,6 @@ jobs:
299239
300240 arm64 :
301241 needs : [metadata, bump-manifest]
302- if : ${{ needs.metadata.outputs.SHOULD_RUN_WORKFLOW == 'true' }}
303242 uses : ./.github/workflows/_ci.yaml
304243 with :
305244 ARCHITECTURE : arm64
@@ -313,7 +252,7 @@ jobs:
313252 # Only merge if everything succeeds
314253 merge-new-manifest :
315254 runs-on : ubuntu-22.04
316- if : ${{ !cancelled() && needs.metadata.outputs.SHOULD_RUN_WORKFLOW == 'true' && needs.metadata.outputs. MERGE_BUMPED_MANIFEST == 'true' && needs.metadata.outputs.MANIFEST_BRANCH != github.sha }}
255+ if : ${{ !cancelled() && needs.metadata.outputs.MERGE_BUMPED_MANIFEST == 'true' && needs.metadata.outputs.MANIFEST_BRANCH != github.sha }}
317256 needs :
318257 - metadata
319258 - amd64
@@ -424,7 +363,7 @@ jobs:
424363
425364 make-publish-configs :
426365 runs-on : ubuntu-22.04
427- if : ${{ !cancelled() && needs.metadata.outputs.SHOULD_RUN_WORKFLOW == 'true' }}
366+ if : ${{ !cancelled() }}
428367 env :
429368 MEALKIT_IMAGE_REPO : ${{ needs.metadata.outputs.PUBLISH == 'true' && 'jax-mealkit' || 'mock-jax-mealkit' }}
430369 FINAL_IMAGE_REPO : ${{ needs.metadata.outputs.PUBLISH == 'true' && 'jax' || 'mock-jax' }}
@@ -513,7 +452,7 @@ jobs:
513452 needs :
514453 - metadata
515454 - make-publish-configs
516- if : ${{ !cancelled() && needs.metadata.outputs.SHOULD_RUN_WORKFLOW == 'true' && needs. make-publish-configs.outputs.PUBLISH_CONFIGS.config != '{"config":[]}' }}
455+ if : ${{ !cancelled() && needs.make-publish-configs.outputs.PUBLISH_CONFIGS.config != '{"config":[]}' }}
517456 strategy :
518457 fail-fast : false
519458 matrix : ${{ fromJson(needs.make-publish-configs.outputs.PUBLISH_CONFIGS) }}
@@ -529,7 +468,7 @@ jobs:
529468
530469 finalize :
531470 needs : [metadata, amd64, arm64, publish-containers]
532- if : ${{ !cancelled() && needs.metadata.outputs.SHOULD_RUN_WORKFLOW == 'true' }}
471+ if : ${{ !cancelled() }}
533472 uses : ./.github/workflows/_finalize.yaml
534473 with :
535474 BUILD_DATE : ${{ needs.metadata.outputs.BUILD_DATE }}
0 commit comments