4040 default : 1
4141 required : false
4242 type : number
43- run-linux :
44- description : " run Linux tests"
43+ run-linux-intel :
44+ description : " run Linux-intel tests"
45+ default : true
46+ required : false
47+ type : boolean
48+ run-linux-arm :
49+ description : " run Linux-arm tests"
4550 default : true
4651 required : false
4752 type : boolean
4853 run-macos-intel :
4954 description : " run macOS-intel tests"
50- default : true
55+ default : false
5156 required : false
5257 type : boolean
5358 run-macos-arm :
@@ -104,12 +109,24 @@ jobs:
104109 || 'main'
105110 }} >> "$GITHUB_OUTPUT"
106111
112+ - name : Generate mac intel configuration
113+ id : macintel
114+ run : |
115+ echo mac_intel=${{
116+ ( github.event_name == 'schedule' || inputs.run-macos-intel )
117+ || ( github.repository_owner == 'Chia-Network' && github.repository == 'Chia-Network/chia-blockchain' && startsWith(github.ref, 'refs/heads/release/') )
118+ || ( github.repository_owner == 'Chia-Network' && github.repository == 'Chia-Network/chia-blockchain' && startsWith(github.base_ref, 'release/') )
119+ && 'true'
120+ || 'false'
121+ }} >> "$GITHUB_OUTPUT"
122+
107123 outputs :
108124 configuration : ${{ steps.configure.outputs.configuration }}
109125 matrix_mode : ${{ steps.configure.outputs.matrix_mode }}
126+ mac_intel : ${{ steps.macintel.outputs.mac_intel }}
110127
111128 macos-intel :
112- if : github.event_name != 'workflow_dispatch' || inputs.run-macos-intel
129+ if : needs.configure.outputs.mac_intel == 'true'
113130 uses : ./.github/workflows/test-single.yml
114131 needs : configure
115132 with :
@@ -120,7 +137,7 @@ jobs:
120137 concurrency-name : macos-intel
121138 configuration : ${{ needs.configure.outputs.configuration }}
122139 matrix_mode : ${{ needs.configure.outputs.matrix_mode }}
123- runs-on : macos-13
140+ runs-on : ${{ github.repository_owner == 'Chia-Network' && ' macos-13-intel' || 'macos-13' }}
124141 arch : intel
125142 arch-emoji : 🌀
126143 macos-arm :
@@ -139,22 +156,38 @@ jobs:
139156 arch : arm
140157 arch-emoji : 💪
141158 collect-junit : false
142- ubuntu :
143- if : github.event_name != 'workflow_dispatch' || inputs.run-linux
159+ ubuntu-intel :
160+ if : github.event_name != 'workflow_dispatch' || inputs.run-linux-intel
144161 uses : ./.github/workflows/test-single.yml
145162 needs : configure
146163 with :
147164 os-emoji : 🐧
148165 matrix : ubuntu
149166 name : Ubuntu
150- file_name : ubuntu
151- concurrency-name : ubuntu
167+ file_name : ubuntu-intel
168+ concurrency-name : ubuntu-intel
152169 configuration : ${{ needs.configure.outputs.configuration }}
153170 matrix_mode : ${{ needs.configure.outputs.matrix_mode }}
154171 runs-on : ubuntu-latest
155172 arch : intel
156173 arch-emoji : 🌀
157174 collect-junit : false
175+ ubuntu-arm :
176+ if : github.event_name != 'workflow_dispatch' || inputs.run-linux-arm
177+ uses : ./.github/workflows/test-single.yml
178+ needs : configure
179+ with :
180+ os-emoji : 🐧
181+ matrix : ubuntu
182+ name : Ubuntu
183+ file_name : ubuntu-arm
184+ concurrency-name : ubuntu-arm
185+ configuration : ${{ needs.configure.outputs.configuration }}
186+ matrix_mode : ${{ needs.configure.outputs.matrix_mode }}
187+ runs-on : ubuntu-24.04-arm
188+ arch : arm
189+ arch-emoji : 💪
190+ collect-junit : false
158191 windows :
159192 if : github.event_name != 'workflow_dispatch' || inputs.run-windows
160193 uses : ./.github/workflows/test-single.yml
@@ -173,13 +206,15 @@ jobs:
173206 collect-junit : false
174207
175208 coverage :
176- if : github.repository_owner == 'Chia-Network'
209+ if : always() && github.repository_owner == 'Chia-Network'
177210 name : ${{ matrix.os.emoji }} Coverage - ${{ matrix.python.name }}
178211 runs-on : ${{ matrix.os.runs-on }}
179212 needs :
213+ - configure
180214 - macos-intel
181215 - macos-arm
182- - ubuntu
216+ - ubuntu-intel
217+ - ubuntu-arm
183218 - windows
184219 strategy :
185220 fail-fast : false
@@ -197,6 +232,12 @@ jobs:
197232 matrix : " 3.10"
198233
199234 steps :
235+ - uses : re-actors/alls-green@release/v1.2
236+ id : alls-green
237+ with :
238+ allowed-skips : ${{ needs.configure.outputs.mac_intel != 'true' && 'macos-intel' || '' }}
239+ jobs : ${{ toJSON(needs) }}
240+
200241 - uses : actions/checkout@v5
201242 with :
202243 fetch-depth : 0
@@ -253,13 +294,13 @@ jobs:
253294 - uses : chia-network/actions/activate-venv@main
254295
255296 - name : Add time out assert results to workflow summary
256- if : always() && false
297+ if : always() && steps.alls-green.outputs.success == 'true' && false
257298 run : |
258299 python -m chia._tests.process_junit --limit 50 --type time_out_assert --xml junit-results/junit.xml --markdown --link-prefix ${{ github.event.repository.html_url }}/blob/${{ github.sha }}/ --link-line-separator \#L >> "$GITHUB_STEP_SUMMARY"
259300 python -m chia._tests.process_junit --type time_out_assert --xml junit-results/junit.xml --markdown --link-prefix ${{ github.event.repository.html_url }}/blob/${{ github.sha }}/ --link-line-separator \#L >> junit-results/time_out_assert.md
260301
261302 - name : Publish JUnit results
262- if : always() && false
303+ if : always() && steps.alls-green.outputs.success == 'true' && false
263304 uses : actions/upload-artifact@v4
264305 with :
265306 name : junit-results
@@ -273,18 +314,18 @@ jobs:
273314 coverage html --rcfile=.coveragerc --data-file=coverage-reports/.coverage --directory coverage-reports/html/
274315
275316 - uses : coverallsapp/github-action@v2
276- if : always()
317+ if : always() && steps.alls-green.outputs.success == 'true'
277318 env :
278319 COVERALLS_REPO_TOKEN : ${{ secrets.COVERALLS_REPO_TOKEN }}
279320
280321 - name : Coverage report (chia/)
281- if : always()
322+ if : always() && steps.alls-green.outputs.success == 'true'
282323 run : |
283324 set -o pipefail
284325 coverage report --rcfile=.coveragerc --data-file=coverage-reports/.coverage --include='chia/**/*' --omit='chia/_tests/**/*' --show-missing | tee coverage-reports/coverage-chia-stdout
285326
286327 - name : Coverage report (chia/_tests/)
287- if : always()
328+ if : always() && steps.alls-green.outputs.success == 'true'
288329 run : |
289330 set -o pipefail
290331 coverage report --rcfile=.coveragerc --data-file=coverage-reports/.coverage --include='chia/_tests/**/*' --show-missing | tee coverage-reports/coverage-tests-stdout
@@ -295,7 +336,7 @@ jobs:
295336 echo "hash=$(git rev-parse HEAD~1)" >> "$GITHUB_OUTPUT"
296337
297338 - name : Coverage report (diff)
298- if : (github.base_ref != '' || github.event.before != '') && always()
339+ if : (github.base_ref != '' || github.event.before != '') && always() && steps.alls-green.outputs.success == 'true'
299340 env :
300341 compare-branch : ${{ github.base_ref == '' && steps.parent-commit.outputs.hash || format('origin/{0}', github.base_ref) }}
301342 run : |
@@ -308,7 +349,7 @@ jobs:
308349 fi
309350
310351 - name : Remove previous coverage report comment and label from PR
311- if : github.base_ref != '' && always()
352+ if : github.base_ref != '' && always() && steps.alls-green.outputs.success == 'true'
312353 shell : bash
313354 env :
314355 COV_STATUS : ${{ env.COV_STATUS }}
@@ -329,7 +370,7 @@ jobs:
329370 fi
330371
331372 - name : Add diff coverage report comment to PR
332- if : github.base_ref != '' && always()
373+ if : github.base_ref != '' && always() && steps.alls-green.outputs.success == 'true'
333374 env :
334375 BRANCH_NAME : ${{ github.sha }}
335376 COV_STATUS : ${{ env.COV_STATUS }}
@@ -379,12 +420,12 @@ jobs:
379420 fi
380421
381422 - name : Add diff coverage report to workflow summary
382- if : (github.base_ref != '' || github.event.before != '') && always()
423+ if : (github.base_ref != '' || github.event.before != '') && always() && steps.alls-green.outputs.success == 'true'
383424 run : |
384425 cat coverage-reports/diff-cover.md >> "$GITHUB_STEP_SUMMARY"
385426
386427 - name : Publish coverage reports
387- if : always()
428+ if : always() && steps.alls-green.outputs.success == 'true'
388429 uses : actions/upload-artifact@v4
389430 with :
390431 name : coverage-reports
0 commit comments