@@ -19,6 +19,12 @@ concurrency:
1919 cancel-in-progress : true
2020
2121jobs :
22+ # Emits PR diff file list; non-PR events emit '*' so the per-job
23+ # `if:` short-circuits via `event_name != 'pull_request'`.
24+ changed-files :
25+ name : Get changed files
26+ uses : ./.github/workflows/_get-changed-files.yml
27+
2228 test-models-macos-cpu :
2329 name : test-models-macos-cpu
2430 uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
@@ -338,6 +344,14 @@ jobs:
338344 backends/arm/test/test_arm_ootb.sh $OOTB_TEST
339345
340346 test-coreml-delegate :
347+ needs : changed-files
348+ if : |
349+ github.event_name != 'pull_request' ||
350+ contains(needs.changed-files.outputs.changed-files, 'backends/apple/coreml') ||
351+ contains(needs.changed-files.outputs.changed-files, 'examples/apple/coreml') ||
352+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/setup-macos.sh') ||
353+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/setup-conda.sh') ||
354+ contains(needs.changed-files.outputs.changed-files, '.github/workflows/trunk.yml')
341355 name : test-coreml-delegate
342356 uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
343357 with :
@@ -357,6 +371,17 @@ jobs:
357371 PYTHON_EXECUTABLE=python ${CONDA_RUN} bash backends/apple/coreml/scripts/build_all.sh
358372
359373 test-static-llama-ane :
374+ needs : changed-files
375+ if : |
376+ github.event_name != 'pull_request' ||
377+ contains(needs.changed-files.outputs.changed-files, 'backends/apple/coreml') ||
378+ contains(needs.changed-files.outputs.changed-files, 'examples/apple/coreml') ||
379+ contains(needs.changed-files.outputs.changed-files, 'examples/models/llama') ||
380+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/export') ||
381+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/tokenizers') ||
382+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/test_ane_static_llama.sh') ||
383+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/utils.sh') ||
384+ contains(needs.changed-files.outputs.changed-files, '.github/workflows/trunk.yml')
360385 name : test-static-llama-ane
361386 uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
362387 with :
@@ -460,6 +485,23 @@ jobs:
460485 PYTHON_EXECUTABLE=python bash .ci/scripts/test_llama.sh -model stories110M -build_tool "${BUILD_TOOL}" -dtype "${DTYPE}" -mode "${MODE}" -upload "${ARTIFACTS_DIR_NAME}"
461486
462487 test-llama-runner-macos :
488+ needs : changed-files
489+ # Whole-job gate (matrix cells can't be individually if'd):
490+ # mps / coreml / xnnpack+custom+quantize_kv.
491+ if : |
492+ github.event_name != 'pull_request' ||
493+ contains(needs.changed-files.outputs.changed-files, 'backends/apple/coreml') ||
494+ contains(needs.changed-files.outputs.changed-files, 'backends/apple/mps') ||
495+ contains(needs.changed-files.outputs.changed-files, 'backends/xnnpack') ||
496+ contains(needs.changed-files.outputs.changed-files, 'examples/models/llama') ||
497+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/export') ||
498+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/tokenizers') ||
499+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/runner') ||
500+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/custom_ops') ||
501+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/sampler') ||
502+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/test_llama.sh') ||
503+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/setup-macos.sh') ||
504+ contains(needs.changed-files.outputs.changed-files, '.github/workflows/trunk.yml')
463505 name : test-llama-runner-mac
464506 uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
465507 strategy :
@@ -636,6 +678,15 @@ jobs:
636678 PYTHON_EXECUTABLE=python bash .ci/scripts/test_model.sh ${{ matrix.model }} "cmake" "qnn"
637679
638680 test-models-macos-coreml :
681+ needs : changed-files
682+ if : |
683+ github.event_name != 'pull_request' ||
684+ contains(needs.changed-files.outputs.changed-files, 'backends/apple/coreml') ||
685+ contains(needs.changed-files.outputs.changed-files, 'examples/apple/coreml') ||
686+ contains(needs.changed-files.outputs.changed-files, 'examples/models') ||
687+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/test_model.sh') ||
688+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/setup-macos.sh') ||
689+ contains(needs.changed-files.outputs.changed-files, '.github/workflows/trunk.yml')
639690 name : test-models-macos-coreml
640691 uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
641692 strategy :
@@ -678,6 +729,18 @@ jobs:
678729 PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/test_model.sh "${MODEL_NAME}" "${BUILD_TOOL}" "${BACKEND}"
679730
680731 test-models-macos-mps :
732+ needs : changed-files
733+ if : |
734+ github.event_name != 'pull_request' ||
735+ contains(needs.changed-files.outputs.changed-files, 'backends/apple/mps') ||
736+ contains(needs.changed-files.outputs.changed-files, 'examples/apple/mps') ||
737+ contains(needs.changed-files.outputs.changed-files, 'examples/models') ||
738+ contains(needs.changed-files.outputs.changed-files, 'devtools/bundled_program') ||
739+ contains(needs.changed-files.outputs.changed-files, 'devtools/etrecord') ||
740+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/export') ||
741+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/test_model.sh') ||
742+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/setup-macos.sh') ||
743+ contains(needs.changed-files.outputs.changed-files, '.github/workflows/trunk.yml')
681744 name : test-models-macos-mps
682745 uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
683746 strategy :
@@ -792,8 +855,20 @@ jobs:
792855 echo "::endgroup::"
793856
794857 test-huggingface-transformers-macos :
858+ needs : changed-files
795859 # NB: Don't run this on fork PRs because they won't have access to the secret and would fail anyway
796- if : ${{ !github.event.pull_request.head.repo.fork }}
860+ if : |
861+ !github.event.pull_request.head.repo.fork &&
862+ (
863+ github.event_name != 'pull_request' ||
864+ contains(needs.changed-files.outputs.changed-files, 'backends/apple/coreml') ||
865+ contains(needs.changed-files.outputs.changed-files, 'extension/llm/runner') ||
866+ contains(needs.changed-files.outputs.changed-files, '.ci/scripts/test_huggingface_optimum_model.py') ||
867+ contains(needs.changed-files.outputs.changed-files, '.ci/docker/ci_commit_pins/optimum-executorch.txt') ||
868+ contains(needs.changed-files.outputs.changed-files, 'install_executorch.py') ||
869+ contains(needs.changed-files.outputs.changed-files, 'install_requirements.py') ||
870+ contains(needs.changed-files.outputs.changed-files, '.github/workflows/trunk.yml')
871+ )
797872 name : test-huggingface-transformers-macos
798873 uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
799874 permissions :
0 commit comments