Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 28 additions & 36 deletions .github/workflows/build-cadence-runner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,36 +19,18 @@ concurrency:
cancel-in-progress: true

jobs:
gate:
runs-on: ubuntu-latest
outputs:
run-cadence: ${{ steps.decide.outputs.run }}
steps:
- id: decide
env:
EVENT: ${{ github.event_name }}
IS_FORK: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
HAS_CLA: ${{ contains(github.event.pull_request.labels.*.name, 'CLA Signed') }}
HAS_EXPORT: ${{ contains(github.event.pull_request.labels.*.name, 'meta-exported') }}
run: |
run=false
case "${EVENT}" in
push|schedule|workflow_dispatch)
run=true
;;
pull_request)
[ "${IS_FORK}" = "false" ] && run=true
;;
pull_request_target)
if [ "${IS_FORK}" = "true" ] && [ "${HAS_CLA}" = "true" ] && [ "${HAS_EXPORT}" = "true" ]; then
run=true
fi
;;
esac
echo "run=${run}" >> "${GITHUB_OUTPUT}"

# Same-repo PRs run on pull_request, which reads the PR's own workflow AND code
# -- so CI changes, new test jobs, code, and tests are all validated pre-merge.
# Fork PRs can't get credentials (OIDC) on pull_request, so Meta-exported forks
# (labeled CLA Signed + meta-exported) run on pull_request_target instead. The
# run condition is inlined per job (GitHub Actions has no YAML anchors and env
# is unavailable in job-level if), so keep the copies in sync.
cpu-build:
if: github.event_name != 'pull_request_target'
if: >-
github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) ||
(github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository &&
contains(github.event.pull_request.labels.*.name, 'CLA Signed') && contains(github.event.pull_request.labels.*.name, 'meta-exported'))
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
permissions:
id-token: write
Expand All @@ -58,7 +40,7 @@ jobs:
runner: linux.2xlarge
docker-image: ci-image:executorch-ubuntu-22.04-clang12
submodules: recursive
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
ref: ${{ (github.event_name == 'pull_request' || github.event_name == 'pull_request_target') && github.event.pull_request.head.sha || github.sha }}
timeout: 90
upload-artifact: cadence-runner-build
script: |
Expand All @@ -75,21 +57,28 @@ jobs:

cpu-test:
needs: cpu-build
if: github.event_name != 'pull_request_target'
if: >-
github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) ||
(github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository &&
contains(github.event.pull_request.labels.*.name, 'CLA Signed') && contains(github.event.pull_request.labels.*.name, 'meta-exported'))
permissions:
id-token: write
contents: read
uses: ./.github/workflows/_test_cadence.yml
with:
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
ref: ${{ (github.event_name == 'pull_request' || github.event_name == 'pull_request_target') && github.event.pull_request.head.sha || github.sha }}

# Cross-compile cadence_executor_runner for each Cadence Xtensa core, one job
# per backend so they show as separate lines (no matrix grouping). Shared logic
# lives in _xtensa_build.yml. fusion_g3 is omitted until the upstream fusion_g3
# <-> nnlib-FusionG3 API skew is fixed (its runner does not link).
hifi-build:
needs: gate
if: needs.gate.outputs.run-cadence == 'true'
if: >-
github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) ||
(github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository &&
contains(github.event.pull_request.labels.*.name, 'CLA Signed') && contains(github.event.pull_request.labels.*.name, 'meta-exported'))
permissions:
id-token: write
contents: read
Expand All @@ -99,8 +88,11 @@ jobs:
ref: ${{ (github.event_name == 'pull_request' || github.event_name == 'pull_request_target') && github.event.pull_request.head.sha || github.sha }}

vision-build:
needs: gate
if: needs.gate.outputs.run-cadence == 'true'
if: >-
github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' ||
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) ||
(github.event_name == 'pull_request_target' && github.event.pull_request.head.repo.full_name != github.repository &&
contains(github.event.pull_request.labels.*.name, 'CLA Signed') && contains(github.event.pull_request.labels.*.name, 'meta-exported'))
permissions:
id-token: write
contents: read
Expand Down
Loading