1# Generated from xtask::workflows::run_tests
2# Rebuild with `cargo xtask workflows`.
3name: run_tests
4env:
5 CARGO_TERM_COLOR: always
6 RUST_BACKTRACE: '1'
7 CARGO_INCREMENTAL: '0'
8on:
9 pull_request:
10 branches:
11 - '**'
12 push:
13 branches:
14 - main
15 - v[0-9]+.[0-9]+.x
16jobs:
17 orchestrate:
18 if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
19 runs-on: namespace-profile-2x4-ubuntu-2404
20 steps:
21 - name: steps::checkout_repo
22 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
23 with:
24 clean: false
25 fetch-depth: ${{ github.ref == 'refs/heads/main' && 2 || 350 }}
26 - id: filter
27 name: filter
28 run: |
29 if [ -z "$GITHUB_BASE_REF" ]; then
30 echo "Not in a PR context (i.e., push to main/stable/preview)"
31 COMPARE_REV="$(git rev-parse HEAD~1)"
32 else
33 echo "In a PR context comparing to pull_request.base.ref"
34 git fetch origin "$GITHUB_BASE_REF" --depth=350
35 COMPARE_REV="$(git merge-base "origin/${GITHUB_BASE_REF}" HEAD)"
36 fi
37 CHANGED_FILES="$(git diff --name-only "$COMPARE_REV" ${{ github.sha }})"
38
39 check_pattern() {
40 local output_name="$1"
41 local pattern="$2"
42 local grep_arg="$3"
43
44 echo "$CHANGED_FILES" | grep "$grep_arg" "$pattern" && \
45 echo "${output_name}=true" >> "$GITHUB_OUTPUT" || \
46 echo "${output_name}=false" >> "$GITHUB_OUTPUT"
47 }
48
49 check_pattern "run_action_checks" '^\.github/(workflows/|actions/|actionlint.yml)|tooling/xtask|script/' -qP
50 check_pattern "run_docs" '^(docs/|crates/.*\.rs)' -qP
51 check_pattern "run_licenses" '^(Cargo.lock|script/.*licenses)' -qP
52 check_pattern "run_nix" '^(nix/|flake\.|Cargo\.|rust-toolchain.toml|\.cargo/config.toml)' -qP
53 check_pattern "run_tests" '^(docs/|script/update_top_ranking_issues/|\.github/(ISSUE_TEMPLATE|workflows/(?!run_tests)))' -qvP
54 shell: bash -euxo pipefail {0}
55 outputs:
56 run_action_checks: ${{ steps.filter.outputs.run_action_checks }}
57 run_docs: ${{ steps.filter.outputs.run_docs }}
58 run_licenses: ${{ steps.filter.outputs.run_licenses }}
59 run_nix: ${{ steps.filter.outputs.run_nix }}
60 run_tests: ${{ steps.filter.outputs.run_tests }}
61 check_style:
62 if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
63 runs-on: namespace-profile-4x8-ubuntu-2204
64 steps:
65 - name: steps::checkout_repo
66 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
67 with:
68 clean: false
69 - name: steps::cache_rust_dependencies_namespace
70 uses: namespacelabs/nscloud-cache-action@v1
71 with:
72 cache: rust
73 - name: steps::setup_pnpm
74 uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2
75 with:
76 version: '9'
77 - name: ./script/prettier
78 run: ./script/prettier
79 shell: bash -euxo pipefail {0}
80 - name: ./script/check-todos
81 run: ./script/check-todos
82 shell: bash -euxo pipefail {0}
83 - name: ./script/check-keymaps
84 run: ./script/check-keymaps
85 shell: bash -euxo pipefail {0}
86 - name: run_tests::check_style::check_for_typos
87 uses: crate-ci/typos@80c8a4945eec0f6d464eaf9e65ed98ef085283d1
88 with:
89 config: ./typos.toml
90 - name: steps::cargo_fmt
91 run: cargo fmt --all -- --check
92 shell: bash -euxo pipefail {0}
93 timeout-minutes: 60
94 run_tests_windows:
95 needs:
96 - orchestrate
97 if: needs.orchestrate.outputs.run_tests == 'true'
98 runs-on: self-32vcpu-windows-2022
99 steps:
100 - name: steps::checkout_repo
101 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
102 with:
103 clean: false
104 - name: steps::setup_cargo_config
105 run: |
106 New-Item -ItemType Directory -Path "./../.cargo" -Force
107 Copy-Item -Path "./.cargo/ci-config.toml" -Destination "./../.cargo/config.toml"
108 shell: pwsh
109 - name: steps::setup_node
110 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
111 with:
112 node-version: '20'
113 - name: steps::clippy
114 run: ./script/clippy.ps1
115 shell: pwsh
116 - name: steps::clear_target_dir_if_large
117 run: ./script/clear-target-dir-if-larger-than.ps1 250
118 shell: pwsh
119 - name: steps::cargo_nextest
120 run: cargo nextest run --workspace --no-fail-fast
121 shell: pwsh
122 - name: steps::cleanup_cargo_config
123 if: always()
124 run: |
125 Remove-Item -Recurse -Path "./../.cargo" -Force -ErrorAction SilentlyContinue
126 shell: pwsh
127 timeout-minutes: 60
128 run_tests_linux:
129 needs:
130 - orchestrate
131 if: needs.orchestrate.outputs.run_tests == 'true'
132 runs-on: namespace-profile-16x32-ubuntu-2204
133 steps:
134 - name: steps::checkout_repo
135 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
136 with:
137 clean: false
138 - name: steps::setup_cargo_config
139 run: |
140 mkdir -p ./../.cargo
141 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
142 shell: bash -euxo pipefail {0}
143 - name: steps::cache_rust_dependencies_namespace
144 uses: namespacelabs/nscloud-cache-action@v1
145 with:
146 cache: rust
147 - name: steps::setup_linux
148 run: ./script/linux
149 shell: bash -euxo pipefail {0}
150 - name: steps::install_mold
151 run: ./script/install-mold
152 shell: bash -euxo pipefail {0}
153 - name: steps::download_wasi_sdk
154 run: ./script/download-wasi-sdk
155 shell: bash -euxo pipefail {0}
156 - name: steps::setup_node
157 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
158 with:
159 node-version: '20'
160 - name: steps::clippy
161 run: ./script/clippy
162 shell: bash -euxo pipefail {0}
163 - name: steps::cargo_install_nextest
164 uses: taiki-e/install-action@nextest
165 - name: steps::clear_target_dir_if_large
166 run: ./script/clear-target-dir-if-larger-than 250
167 shell: bash -euxo pipefail {0}
168 - name: steps::cargo_nextest
169 run: cargo nextest run --workspace --no-fail-fast
170 shell: bash -euxo pipefail {0}
171 - name: steps::cleanup_cargo_config
172 if: always()
173 run: |
174 rm -rf ./../.cargo
175 shell: bash -euxo pipefail {0}
176 timeout-minutes: 60
177 run_tests_mac:
178 needs:
179 - orchestrate
180 if: needs.orchestrate.outputs.run_tests == 'true'
181 runs-on: self-mini-macos
182 steps:
183 - name: steps::checkout_repo
184 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
185 with:
186 clean: false
187 - name: steps::setup_cargo_config
188 run: |
189 mkdir -p ./../.cargo
190 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
191 shell: bash -euxo pipefail {0}
192 - name: steps::setup_node
193 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
194 with:
195 node-version: '20'
196 - name: steps::clippy
197 run: ./script/clippy
198 shell: bash -euxo pipefail {0}
199 - name: steps::clear_target_dir_if_large
200 run: ./script/clear-target-dir-if-larger-than 300
201 shell: bash -euxo pipefail {0}
202 - name: steps::cargo_nextest
203 run: cargo nextest run --workspace --no-fail-fast
204 shell: bash -euxo pipefail {0}
205 - name: steps::cleanup_cargo_config
206 if: always()
207 run: |
208 rm -rf ./../.cargo
209 shell: bash -euxo pipefail {0}
210 timeout-minutes: 60
211 doctests:
212 needs:
213 - orchestrate
214 if: needs.orchestrate.outputs.run_tests == 'true'
215 runs-on: namespace-profile-16x32-ubuntu-2204
216 steps:
217 - name: steps::checkout_repo
218 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
219 with:
220 clean: false
221 - name: steps::cache_rust_dependencies_namespace
222 uses: namespacelabs/nscloud-cache-action@v1
223 with:
224 cache: rust
225 - name: steps::setup_linux
226 run: ./script/linux
227 shell: bash -euxo pipefail {0}
228 - name: steps::install_mold
229 run: ./script/install-mold
230 shell: bash -euxo pipefail {0}
231 - name: steps::download_wasi_sdk
232 run: ./script/download-wasi-sdk
233 shell: bash -euxo pipefail {0}
234 - name: steps::setup_cargo_config
235 run: |
236 mkdir -p ./../.cargo
237 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
238 shell: bash -euxo pipefail {0}
239 - id: run_doctests
240 name: run_tests::doctests::run_doctests
241 run: |
242 cargo test --workspace --doc --no-fail-fast
243 shell: bash -euxo pipefail {0}
244 - name: steps::cleanup_cargo_config
245 if: always()
246 run: |
247 rm -rf ./../.cargo
248 shell: bash -euxo pipefail {0}
249 timeout-minutes: 60
250 check_workspace_binaries:
251 needs:
252 - orchestrate
253 if: needs.orchestrate.outputs.run_tests == 'true'
254 runs-on: namespace-profile-8x16-ubuntu-2204
255 steps:
256 - name: steps::checkout_repo
257 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
258 with:
259 clean: false
260 - name: steps::setup_cargo_config
261 run: |
262 mkdir -p ./../.cargo
263 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
264 shell: bash -euxo pipefail {0}
265 - name: steps::cache_rust_dependencies_namespace
266 uses: namespacelabs/nscloud-cache-action@v1
267 with:
268 cache: rust
269 - name: steps::setup_linux
270 run: ./script/linux
271 shell: bash -euxo pipefail {0}
272 - name: steps::install_mold
273 run: ./script/install-mold
274 shell: bash -euxo pipefail {0}
275 - name: steps::download_wasi_sdk
276 run: ./script/download-wasi-sdk
277 shell: bash -euxo pipefail {0}
278 - name: cargo build -p collab
279 run: cargo build -p collab
280 shell: bash -euxo pipefail {0}
281 - name: cargo build --workspace --bins --examples
282 run: cargo build --workspace --bins --examples
283 shell: bash -euxo pipefail {0}
284 - name: steps::cleanup_cargo_config
285 if: always()
286 run: |
287 rm -rf ./../.cargo
288 shell: bash -euxo pipefail {0}
289 timeout-minutes: 60
290 check_dependencies:
291 needs:
292 - orchestrate
293 if: needs.orchestrate.outputs.run_tests == 'true'
294 runs-on: namespace-profile-2x4-ubuntu-2404
295 steps:
296 - name: steps::checkout_repo
297 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
298 with:
299 clean: false
300 - name: steps::cache_rust_dependencies_namespace
301 uses: namespacelabs/nscloud-cache-action@v1
302 with:
303 cache: rust
304 - name: run_tests::check_dependencies::install_cargo_machete
305 uses: clechasseur/rs-cargo@8435b10f6e71c2e3d4d3b7573003a8ce4bfc6386
306 with:
307 command: install
308 args: cargo-machete@0.7.0
309 - name: run_tests::check_dependencies::run_cargo_machete
310 uses: clechasseur/rs-cargo@8435b10f6e71c2e3d4d3b7573003a8ce4bfc6386
311 with:
312 command: machete
313 - name: run_tests::check_dependencies::check_cargo_lock
314 run: cargo update --locked --workspace
315 shell: bash -euxo pipefail {0}
316 - name: run_tests::check_dependencies::check_vulnerable_dependencies
317 if: github.event_name == 'pull_request'
318 uses: actions/dependency-review-action@67d4f4bd7a9b17a0db54d2a7519187c65e339de8
319 with:
320 license-check: false
321 timeout-minutes: 60
322 check_docs:
323 needs:
324 - orchestrate
325 if: needs.orchestrate.outputs.run_docs == 'true'
326 runs-on: namespace-profile-8x16-ubuntu-2204
327 steps:
328 - name: steps::checkout_repo
329 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
330 with:
331 clean: false
332 - name: steps::setup_cargo_config
333 run: |
334 mkdir -p ./../.cargo
335 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
336 shell: bash -euxo pipefail {0}
337 - name: steps::cache_rust_dependencies_namespace
338 uses: namespacelabs/nscloud-cache-action@v1
339 with:
340 cache: rust
341 - name: run_tests::check_docs::lychee_link_check
342 uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332
343 with:
344 args: --no-progress --exclude '^http' './docs/src/**/*'
345 fail: true
346 jobSummary: false
347 - name: steps::setup_linux
348 run: ./script/linux
349 shell: bash -euxo pipefail {0}
350 - name: steps::install_mold
351 run: ./script/install-mold
352 shell: bash -euxo pipefail {0}
353 - name: steps::download_wasi_sdk
354 run: ./script/download-wasi-sdk
355 shell: bash -euxo pipefail {0}
356 - name: run_tests::check_docs::install_mdbook
357 uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08
358 with:
359 mdbook-version: 0.4.37
360 - name: run_tests::check_docs::build_docs
361 run: |
362 mkdir -p target/deploy
363 mdbook build ./docs --dest-dir=../target/deploy/docs/
364 shell: bash -euxo pipefail {0}
365 - name: run_tests::check_docs::lychee_link_check
366 uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332
367 with:
368 args: --no-progress --exclude '^http' 'target/deploy/docs'
369 fail: true
370 jobSummary: false
371 timeout-minutes: 60
372 check_licenses:
373 needs:
374 - orchestrate
375 if: needs.orchestrate.outputs.run_licenses == 'true'
376 runs-on: namespace-profile-2x4-ubuntu-2404
377 steps:
378 - name: steps::checkout_repo
379 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
380 with:
381 clean: false
382 - name: steps::cache_rust_dependencies_namespace
383 uses: namespacelabs/nscloud-cache-action@v1
384 with:
385 cache: rust
386 - name: ./script/check-licenses
387 run: ./script/check-licenses
388 shell: bash -euxo pipefail {0}
389 - name: ./script/generate-licenses
390 run: ./script/generate-licenses
391 shell: bash -euxo pipefail {0}
392 check_scripts:
393 needs:
394 - orchestrate
395 if: needs.orchestrate.outputs.run_action_checks == 'true'
396 runs-on: namespace-profile-2x4-ubuntu-2404
397 steps:
398 - name: steps::checkout_repo
399 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
400 with:
401 clean: false
402 - name: run_tests::check_scripts::run_shellcheck
403 run: ./script/shellcheck-scripts error
404 shell: bash -euxo pipefail {0}
405 - id: get_actionlint
406 name: run_tests::check_scripts::download_actionlint
407 run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
408 shell: bash -euxo pipefail {0}
409 - name: run_tests::check_scripts::run_actionlint
410 run: |
411 ${{ steps.get_actionlint.outputs.executable }} -color
412 shell: bash -euxo pipefail {0}
413 - name: run_tests::check_scripts::check_xtask_workflows
414 run: |
415 cargo xtask workflows
416 if ! git diff --exit-code .github; then
417 echo "Error: .github directory has uncommitted changes after running 'cargo xtask workflows'"
418 echo "Please run 'cargo xtask workflows' locally and commit the changes"
419 exit 1
420 fi
421 shell: bash -euxo pipefail {0}
422 timeout-minutes: 60
423 build_nix_linux_x86_64:
424 needs:
425 - orchestrate
426 if: needs.orchestrate.outputs.run_nix == 'true'
427 runs-on: namespace-profile-32x64-ubuntu-2004
428 env:
429 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
430 ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
431 ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
432 GIT_LFS_SKIP_SMUDGE: '1'
433 steps:
434 - name: steps::checkout_repo
435 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
436 with:
437 clean: false
438 - name: nix_build::build_nix::install_nix
439 uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f
440 with:
441 github_access_token: ${{ secrets.GITHUB_TOKEN }}
442 - name: nix_build::build_nix::cachix_action
443 uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad
444 with:
445 name: zed
446 authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
447 cachixArgs: -v
448 pushFilter: -zed-editor-[0-9.]*-nightly
449 - name: nix_build::build_nix::build
450 run: nix build .#debug -L --accept-flake-config
451 shell: bash -euxo pipefail {0}
452 timeout-minutes: 60
453 continue-on-error: true
454 build_nix_mac_aarch64:
455 needs:
456 - orchestrate
457 if: needs.orchestrate.outputs.run_nix == 'true'
458 runs-on: self-mini-macos
459 env:
460 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
461 ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
462 ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
463 GIT_LFS_SKIP_SMUDGE: '1'
464 steps:
465 - name: steps::checkout_repo
466 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
467 with:
468 clean: false
469 - name: nix_build::build_nix::set_path
470 run: |
471 echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
472 echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH"
473 shell: bash -euxo pipefail {0}
474 - name: nix_build::build_nix::cachix_action
475 uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad
476 with:
477 name: zed
478 authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
479 cachixArgs: -v
480 pushFilter: -zed-editor-[0-9.]*-nightly
481 - name: nix_build::build_nix::build
482 run: nix build .#debug -L --accept-flake-config
483 shell: bash -euxo pipefail {0}
484 - name: nix_build::build_nix::limit_store
485 run: |-
486 if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then
487 nix-collect-garbage -d || true
488 fi
489 shell: bash -euxo pipefail {0}
490 timeout-minutes: 60
491 continue-on-error: true
492 check_postgres_and_protobuf_migrations:
493 needs:
494 - orchestrate
495 if: needs.orchestrate.outputs.run_tests == 'true'
496 runs-on: namespace-profile-16x32-ubuntu-2204
497 env:
498 GIT_AUTHOR_NAME: Protobuf Action
499 GIT_AUTHOR_EMAIL: ci@zed.dev
500 steps:
501 - name: steps::checkout_repo
502 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
503 with:
504 fetch-depth: 0
505 - name: run_tests::check_postgres_and_protobuf_migrations::remove_untracked_files
506 run: git clean -df
507 shell: bash -euxo pipefail {0}
508 - name: run_tests::check_postgres_and_protobuf_migrations::ensure_fresh_merge
509 run: |
510 if [ -z "$GITHUB_BASE_REF" ];
511 then
512 echo "BUF_BASE_BRANCH=$(git merge-base origin/main HEAD)" >> "$GITHUB_ENV"
513 else
514 git checkout -B temp
515 git merge -q "origin/$GITHUB_BASE_REF" -m "merge main into temp"
516 echo "BUF_BASE_BRANCH=$GITHUB_BASE_REF" >> "$GITHUB_ENV"
517 fi
518 shell: bash -euxo pipefail {0}
519 - name: run_tests::check_postgres_and_protobuf_migrations::bufbuild_setup_action
520 uses: bufbuild/buf-setup-action@v1
521 with:
522 version: v1.29.0
523 - name: run_tests::check_postgres_and_protobuf_migrations::bufbuild_breaking_action
524 uses: bufbuild/buf-breaking-action@v1
525 with:
526 input: crates/proto/proto/
527 against: https://github.com/${GITHUB_REPOSITORY}.git#branch=${BUF_BASE_BRANCH},subdir=crates/proto/proto/
528 timeout-minutes: 60
529 tests_pass:
530 needs:
531 - orchestrate
532 - check_style
533 - run_tests_windows
534 - run_tests_linux
535 - run_tests_mac
536 - doctests
537 - check_workspace_binaries
538 - check_dependencies
539 - check_docs
540 - check_licenses
541 - check_scripts
542 - build_nix_linux_x86_64
543 - build_nix_mac_aarch64
544 if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && always()
545 runs-on: namespace-profile-2x4-ubuntu-2404
546 steps:
547 - name: run_tests::tests_pass
548 run: |
549 set +x
550 EXIT_CODE=0
551
552 check_result() {
553 echo "* $1: $2"
554 if [[ "$2" != "skipped" && "$2" != "success" ]]; then EXIT_CODE=1; fi
555 }
556
557 check_result "orchestrate" "${{ needs.orchestrate.result }}"
558 check_result "check_style" "${{ needs.check_style.result }}"
559 check_result "run_tests_windows" "${{ needs.run_tests_windows.result }}"
560 check_result "run_tests_linux" "${{ needs.run_tests_linux.result }}"
561 check_result "run_tests_mac" "${{ needs.run_tests_mac.result }}"
562 check_result "doctests" "${{ needs.doctests.result }}"
563 check_result "check_workspace_binaries" "${{ needs.check_workspace_binaries.result }}"
564 check_result "check_dependencies" "${{ needs.check_dependencies.result }}"
565 check_result "check_docs" "${{ needs.check_docs.result }}"
566 check_result "check_licenses" "${{ needs.check_licenses.result }}"
567 check_result "check_scripts" "${{ needs.check_scripts.result }}"
568 check_result "build_nix_linux_x86_64" "${{ needs.build_nix_linux_x86_64.result }}"
569 check_result "build_nix_mac_aarch64" "${{ needs.build_nix_mac_aarch64.result }}"
570
571 exit $EXIT_CODE
572 shell: bash -euxo pipefail {0}
573concurrency:
574 group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
575 cancel-in-progress: true