@@ -35,6 +35,189 @@ jobs:
35
35
36
36
PYTHONPATH="${PWD}" python .ci/scripts/gather_test_models.py --target-os macos --event "${GITHUB_EVENT_NAME}"
37
37
38
+ test-models-macos :
39
+ name : test-models-macos
40
+ uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
41
+ needs : gather-models
42
+ strategy :
43
+ matrix : ${{ fromJSON(needs.gather-models.outputs.models) }}
44
+ fail-fast : false
45
+ with :
46
+ runner : ${{ matrix.runner }}
47
+ python-version : ' 3.11'
48
+ submodules : ' true'
49
+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
50
+ timeout : ${{ matrix.timeout }}
51
+ script : |
52
+ MODEL_NAME=${{ matrix.model }}
53
+ BUILD_TOOL=${{ matrix.build-tool }}
54
+ BACKEND=${{ matrix.backend }}
55
+ DEMO_BACKEND_DELEGATION=${{ matrix.demo_backend_delegation }}
56
+
57
+ bash .ci/scripts/setup-conda.sh
58
+ # Setup MacOS dependencies as there is no Docker support on MacOS atm
59
+ PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}"
60
+ # Build and test xecutorch
61
+ PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/test.sh "${MODEL_NAME}" "${BUILD_TOOL}" "${BACKEND}" "${DEMO_BACKEND_DELEGATION}"
62
+
63
+ test-custom-ops-macos :
64
+ name : test-custom-ops-macos
65
+ uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
66
+ strategy :
67
+ matrix :
68
+ include :
69
+ - build-tool : cmake
70
+ fail-fast : false
71
+ with :
72
+ runner : macos-m1-stable
73
+ python-version : ' 3.11'
74
+ submodules : ' true'
75
+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
76
+ script : |
77
+ BUILD_TOOL=${{ matrix.build-tool }}
78
+
79
+ bash .ci/scripts/setup-conda.sh
80
+ # Setup MacOS dependencies as there is no Docker support on MacOS atm
81
+ PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}"
82
+ # Build and test custom ops
83
+ PYTHON_EXECUTABLE=python ${CONDA_RUN} bash examples/portable/custom_ops/test_custom_ops.sh "${BUILD_TOOL}"
84
+
85
+ test-selective-build-macos :
86
+ name : test-selective-build-macos
87
+ uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
88
+ strategy :
89
+ matrix :
90
+ include :
91
+ - build-tool : cmake
92
+ fail-fast : false
93
+ with :
94
+ runner : macos-m1-stable
95
+ python-version : ' 3.11'
96
+ submodules : ' true'
97
+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
98
+ script : |
99
+ BUILD_TOOL=${{ matrix.build-tool }}
100
+
101
+ bash .ci/scripts/setup-conda.sh
102
+ # Setup MacOS dependencies as there is no Docker support on MacOS atm
103
+ PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}"
104
+ # Build and test selective build
105
+ PYTHON_EXECUTABLE=python ${CONDA_RUN} bash examples/selective_build/test_selective_build.sh "${BUILD_TOOL}"
106
+
107
+ test-demo-backend-delegation :
108
+ name : test-demo-backend-delegation
109
+ uses : pytorch/test-infra/.github/workflows/linux_job.yml@main
110
+ strategy :
111
+ matrix :
112
+ include :
113
+ - build-tool : buck2
114
+ - build-tool : cmake
115
+ fail-fast : false
116
+ with :
117
+ runner : linux.2xlarge
118
+ docker-image : executorch-ubuntu-22.04-clang12
119
+ submodules : ' true'
120
+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
121
+ script : |
122
+ # The generic Linux job chooses to use base env, not the one setup by the image
123
+ CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]")
124
+ conda activate "${CONDA_ENV}"
125
+
126
+ BUILD_TOOL=${{ matrix.build-tool }}
127
+ PYTHON_EXECUTABLE=python bash .ci/scripts/setup-linux.sh "${BUILD_TOOL}"
128
+ # Test selective build
129
+ PYTHON_EXECUTABLE=python bash examples/portable/scripts/test_demo_backend_delegation.sh "${BUILD_TOOL}"
130
+
131
+ test-arm-backend-delegation :
132
+ name : test-arm-backend-delegation
133
+ uses : pytorch/test-infra/.github/workflows/linux_job.yml@main
134
+ with :
135
+ runner : linux.2xlarge
136
+ docker-image : executorch-ubuntu-22.04-arm-sdk
137
+ submodules : ' true'
138
+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
139
+ script : |
140
+ # The generic Linux job chooses to use base env, not the one setup by the image
141
+ CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]")
142
+ conda activate "${CONDA_ENV}"
143
+
144
+ source .ci/scripts/utils.sh
145
+ install_flatc_from_source
146
+ install_executorch
147
+
148
+ install_arm
149
+
150
+ # Increase number of files user can monitor to bypass buck failures.
151
+ # Hopefully this is high enough for this setup.
152
+ sudo sysctl fs.inotify.max_user_watches=1048576 # 1024 * 1024
153
+
154
+ # Test ethos-u delegate examples with run.sh
155
+ PYTHON_EXECUTABLE=python bash examples/arm/run.sh examples/arm/ethos-u-scratch/
156
+
157
+ test-arm-reference-delegation :
158
+ name : test-arm-reference-delegation
159
+ uses : pytorch/test-infra/.github/workflows/linux_job.yml@main
160
+ with :
161
+ runner : linux.2xlarge
162
+ docker-image : executorch-ubuntu-22.04-arm-sdk
163
+ submodules : ' true'
164
+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
165
+ script : |
166
+ # The generic Linux job chooses to use base env, not the one setup by the image
167
+ CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]")
168
+ conda activate "${CONDA_ENV}"
169
+
170
+ source .ci/scripts/utils.sh
171
+ install_flatc_from_source
172
+ install_executorch
173
+
174
+ install_arm
175
+
176
+ # Run arm unit tests
177
+ pytest -c /dev/null -v -n auto --cov=./ --cov-report=xml backends/arm/test
178
+
179
+ test-coreml-delegate :
180
+ name : test-coreml-delegate
181
+ uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
182
+ with :
183
+ runner : macos-13-xlarge
184
+ python-version : ' 3.11'
185
+ submodules : ' true'
186
+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
187
+ timeout : 90
188
+ script : |
189
+ BUILD_TOOL=cmake
190
+
191
+ bash .ci/scripts/setup-conda.sh
192
+ # Setup MacOS dependencies as there is no Docker support on MacOS atm
193
+ GITHUB_RUNNER=1 PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}"
194
+ # Build and test coreml delegate
195
+ PYTHON_EXECUTABLE=python ${CONDA_RUN} bash backends/apple/coreml/scripts/build_all.sh
196
+
197
+ test-pybind-build-macos :
198
+ name : test-pybind-build-macos
199
+ uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
200
+ strategy :
201
+ matrix :
202
+ include :
203
+ - build-tool : cmake
204
+ fail-fast : false
205
+ with :
206
+ runner : macos-m1-stable
207
+ python-version : ' 3.11'
208
+ submodules : ' true'
209
+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
210
+ timeout : 180
211
+ script : |
212
+ bash .ci/scripts/setup-conda.sh
213
+
214
+ # build module for executorch.extension.pybindings.portable_lib
215
+ BUILD_TOOL=${{ matrix.build-tool }}
216
+ EXECUTORCH_BUILD_PYBIND=ON PYTHON_EXECUTABLE=python ${CONDA_RUN} bash .ci/scripts/setup-macos.sh "${BUILD_TOOL}"
217
+
218
+ # see if we can import the module successfully
219
+ ${CONDA_RUN} python -c "from executorch.extension.pybindings import portable_lib; print('success!')"
220
+
38
221
test-llama-runner-macos :
39
222
name : test-llama-runner-mac
40
223
uses : pytorch/test-infra/.github/workflows/macos_job.yml@main
0 commit comments