Skip to content

Commit bd18ec6

Browse files
committed
Move the shared reusable workflows to linux_job_v3
_test_backend, _llm_server, _test_arduino_library, _test_cortex_m_e2e, _test_cortex_m_ops, _test_cadence and _test_riscv. Their docker-image inputs keep taking ci-image:<name>, so callers pass the same values as before. v3 assumes role/arc through OIDC, and a reusable workflow only gets the permissions its caller hands down, so the test-backend-* callers of _test_backend.yml grant id-token: write. Authored with Claude Code.
1 parent ba98bce commit bd18ec6

16 files changed

Lines changed: 108 additions & 24 deletions

.github/workflows/_llm_server.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,19 @@ on:
1010
default: ci-image:executorch-ubuntu-22.04-clang12
1111

1212
jobs:
13+
docker-image:
14+
name: Resolve CI docker image
15+
uses: ./.github/workflows/_docker-image.yml
16+
1317
linux:
14-
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
18+
needs: docker-image
19+
uses: pytorch/test-infra/.github/workflows/linux_job_v3.yml@main
1520
permissions:
1621
id-token: write
1722
contents: read
1823
with:
19-
runner: linux.2xlarge
20-
docker-image: ${{ inputs.docker-image }}
24+
runner: mt-l-x86iavx512-8-64
25+
docker-image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/executorch/${{ inputs.docker-image }}-${{ needs.docker-image.outputs.ci-docker-hash }}
2126
submodules: recursive
2227
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
2328
timeout: 60

.github/workflows/_test_arduino_library.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,20 @@ on:
1414
default: 90
1515

1616
jobs:
17+
docker-image:
18+
name: Resolve CI docker image
19+
uses: ./.github/workflows/_docker-image.yml
20+
1721
run:
18-
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
22+
needs: docker-image
23+
uses: pytorch/test-infra/.github/workflows/linux_job_v3.yml@main
1924
permissions:
2025
id-token: write
2126
contents: read
2227
with:
2328
job-name: arduino-library
24-
runner: linux.2xlarge
25-
docker-image: ci-image:executorch-ubuntu-22.04-arm-sdk
29+
runner: mt-l-x86iavx512-8-64
30+
docker-image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/executorch/ci-image:executorch-ubuntu-22.04-arm-sdk-${{ needs.docker-image.outputs.ci-docker-hash }}
2631
submodules: 'recursive'
2732
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
2833
timeout: ${{ inputs.timeout }}

.github/workflows/_test_backend.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,20 @@ on:
4040
description: 'Runner type for Linux jobs'
4141
required: false
4242
type: string
43-
default: linux.4xlarge.memory
43+
default: mt-l-x86iavx512-16-128
4444
docker-image:
4545
description: 'Docker image for Linux jobs'
4646
required: false
4747
type: string
4848
default: ci-image:executorch-ubuntu-22.04-clang12
4949

5050
jobs:
51+
docker-image:
52+
name: Resolve CI docker image
53+
uses: ./.github/workflows/_docker-image.yml
54+
5155
test-backend-linux:
56+
needs: docker-image
5257
if: ${{ inputs.run-linux }}
5358
strategy:
5459
fail-fast: false
@@ -57,11 +62,14 @@ jobs:
5762
suite: [models, operators]
5863
exclude: ${{ fromJSON(inputs.exclude) }}
5964

60-
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
65+
uses: pytorch/test-infra/.github/workflows/linux_job_v3.yml@main
66+
permissions:
67+
id-token: write
68+
contents: read
6169
with:
6270
ref: ${{ inputs.ref }}
6371
runner: ${{ inputs.runner-linux }}
64-
docker-image: ${{ inputs.docker-image }}
72+
docker-image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/executorch/${{ inputs.docker-image }}-${{ needs.docker-image.outputs.ci-docker-hash }}
6573
submodules: recursive
6674
timeout: ${{ inputs.timeout }}
6775
upload-artifact: test-report-${{ inputs.backend }}-${{ matrix.flow }}-${{ matrix.suite }}

.github/workflows/_test_cadence.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ on:
1616
description: 'Runner type'
1717
required: false
1818
type: string
19-
default: linux.8xlarge.memory
19+
default: mt-l-x86iavx512-32-256
2020
ref:
2121
description: 'Git ref to checkout'
2222
required: false
@@ -29,12 +29,20 @@ on:
2929
default: 90
3030

3131
jobs:
32+
docker-image:
33+
name: Resolve CI docker image
34+
uses: ./.github/workflows/_docker-image.yml
35+
3236
test-aot:
33-
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
37+
needs: docker-image
38+
uses: pytorch/test-infra/.github/workflows/linux_job_v3.yml@main
39+
permissions:
40+
id-token: write
41+
contents: read
3442
with:
3543
job-name: test-aot
3644
runner: ${{ inputs.runner }}
37-
docker-image: ${{ inputs.docker-image }}
45+
docker-image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/executorch/${{ inputs.docker-image }}-${{ needs.docker-image.outputs.ci-docker-hash }}
3846
submodules: recursive
3947
ref: ${{ inputs.ref }}
4048
timeout: ${{ inputs.timeout }}
@@ -50,11 +58,15 @@ jobs:
5058
python -m pytest backends/cadence/aot/tests/ -v -n auto --reruns 2 --reruns-delay 1
5159
5260
test-ops:
53-
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
61+
needs: docker-image
62+
uses: pytorch/test-infra/.github/workflows/linux_job_v3.yml@main
63+
permissions:
64+
id-token: write
65+
contents: read
5466
with:
5567
job-name: test-ops
5668
runner: ${{ inputs.runner }}
57-
docker-image: ${{ inputs.docker-image }}
69+
docker-image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/executorch/${{ inputs.docker-image }}-${{ needs.docker-image.outputs.ci-docker-hash }}
5870
submodules: recursive
5971
ref: ${{ inputs.ref }}
6072
timeout: ${{ inputs.timeout }}

.github/workflows/_test_cortex_m_e2e.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,25 @@ on:
2323
default: 120
2424

2525
jobs:
26+
docker-image:
27+
name: Resolve CI docker image
28+
uses: ./.github/workflows/_docker-image.yml
29+
2630
run:
27-
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
31+
needs: docker-image
32+
uses: pytorch/test-infra/.github/workflows/linux_job_v3.yml@main
33+
permissions:
34+
id-token: write
35+
contents: read
2836
strategy:
2937
matrix:
3038
model: ${{ fromJSON(inputs.models) }}
3139
target: ${{ fromJSON(inputs.targets) }}
3240
fail-fast: false
3341
with:
3442
job-name: ${{ matrix.model }}-${{ matrix.target }}
35-
runner: linux.2xlarge.memory
36-
docker-image: ci-image:executorch-ubuntu-22.04-arm-sdk
43+
runner: mt-l-x86iavx512-8-64
44+
docker-image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/executorch/ci-image:executorch-ubuntu-22.04-arm-sdk-${{ needs.docker-image.outputs.ci-docker-hash }}
3745
submodules: 'recursive'
3846
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
3947
timeout: ${{ inputs.timeout }}

.github/workflows/_test_cortex_m_ops.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,24 @@ on:
1818
default: 120
1919

2020
jobs:
21+
docker-image:
22+
name: Resolve CI docker image
23+
uses: ./.github/workflows/_docker-image.yml
24+
2125
run:
22-
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
26+
needs: docker-image
27+
uses: pytorch/test-infra/.github/workflows/linux_job_v3.yml@main
28+
permissions:
29+
id-token: write
30+
contents: read
2331
strategy:
2432
matrix:
2533
target: ${{ fromJSON(inputs.targets) }}
2634
fail-fast: false
2735
with:
2836
job-name: cortex-m-ops-${{ matrix.target }}
29-
runner: linux.2xlarge.memory
30-
docker-image: ci-image:executorch-ubuntu-22.04-arm-sdk
37+
runner: mt-l-x86iavx512-8-64
38+
docker-image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/executorch/ci-image:executorch-ubuntu-22.04-arm-sdk-${{ needs.docker-image.outputs.ci-docker-hash }}
3139
submodules: 'recursive'
3240
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
3341
timeout: ${{ inputs.timeout }}

.github/workflows/_test_riscv.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,19 @@ on:
3737
type: string
3838

3939
jobs:
40+
docker-image:
41+
name: Resolve CI docker image
42+
uses: ./.github/workflows/_docker-image.yml
43+
4044
run:
41-
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
45+
needs: docker-image
46+
uses: pytorch/test-infra/.github/workflows/linux_job_v3.yml@main
47+
permissions:
48+
id-token: write
49+
contents: read
4250
with:
43-
runner: linux.2xlarge
44-
docker-image: ci-image:executorch-ubuntu-24.04-gcc14
51+
runner: mt-l-x86iavx512-8-64
52+
docker-image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/executorch/ci-image:executorch-ubuntu-24.04-gcc14-${{ needs.docker-image.outputs.ci-docker-hash }}
4553
submodules: 'recursive'
4654
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
4755
timeout: ${{ inputs.timeout }}

.github/workflows/test-backend-arm.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ concurrency:
1919
jobs:
2020
test-arm:
2121
uses: ./.github/workflows/_test_backend.yml
22+
permissions:
23+
id-token: write
24+
contents: read
2225
with:
2326
backend: arm
2427
flows: >-
@@ -35,6 +38,9 @@ jobs:
3538

3639
test-arm-vgf:
3740
uses: ./.github/workflows/_test_backend.yml
41+
permissions:
42+
id-token: write
43+
contents: read
3844
with:
3945
backend: arm-vgf
4046
flows: >-

.github/workflows/test-backend-coreml.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ jobs:
3636
contains(needs.changed-files.outputs.changed-files, '.github/workflows/test-backend-coreml.yml') ||
3737
contains(needs.changed-files.outputs.changed-files, '.github/workflows/_test_backend.yml')
3838
uses: ./.github/workflows/_test_backend.yml
39+
permissions:
40+
id-token: write
41+
contents: read
3942
with:
4043
backend: coreml
4144
# The heavier coreml_static_int8 macOS matrix saturates the shared

.github/workflows/test-backend-cortex-m.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ jobs:
4949
contains(needs.changed-files.outputs.changed-files, '.github/workflows/test-backend-cortex-m.yml') ||
5050
contains(needs.changed-files.outputs.changed-files, '.github/workflows/_test_backend.yml')
5151
uses: ./.github/workflows/_test_backend.yml
52+
permissions:
53+
id-token: write
54+
contents: read
5255
with:
5356
backend: cortex_m
5457
flows: '["cortex_m"]'

0 commit comments

Comments
 (0)