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: steps::cargo_fmt
81 run: cargo fmt --all -- --check
82 shell: bash -euxo pipefail {0}
83 - name: ./script/check-todos
84 run: ./script/check-todos
85 shell: bash -euxo pipefail {0}
86 - name: ./script/check-keymaps
87 run: ./script/check-keymaps
88 shell: bash -euxo pipefail {0}
89 - name: run_tests::check_style::check_for_typos
90 uses: crate-ci/typos@2d0ce569feab1f8752f1dde43cc2f2aa53236e06
91 with:
92 config: ./typos.toml
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 - id: clippy
114 name: steps::clippy
115 run: ./script/clippy.ps1
116 shell: pwsh
117 - name: steps::clear_target_dir_if_large
118 run: ./script/clear-target-dir-if-larger-than.ps1 250
119 shell: pwsh
120 - name: steps::cargo_nextest
121 run: cargo nextest run --workspace --no-fail-fast
122 shell: pwsh
123 - name: steps::cleanup_cargo_config
124 if: always()
125 run: |
126 Remove-Item -Recurse -Path "./../.cargo" -Force -ErrorAction SilentlyContinue
127 shell: pwsh
128 timeout-minutes: 60
129 run_tests_linux:
130 needs:
131 - orchestrate
132 if: needs.orchestrate.outputs.run_tests == 'true'
133 runs-on: namespace-profile-16x32-ubuntu-2204
134 steps:
135 - name: steps::checkout_repo
136 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
137 with:
138 clean: false
139 - name: steps::setup_cargo_config
140 run: |
141 mkdir -p ./../.cargo
142 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
143 shell: bash -euxo pipefail {0}
144 - name: steps::cache_rust_dependencies_namespace
145 uses: namespacelabs/nscloud-cache-action@v1
146 with:
147 cache: rust
148 - name: steps::setup_linux
149 run: ./script/linux
150 shell: bash -euxo pipefail {0}
151 - name: steps::install_mold
152 run: ./script/install-mold
153 shell: bash -euxo pipefail {0}
154 - name: steps::download_wasi_sdk
155 run: ./script/download-wasi-sdk
156 shell: bash -euxo pipefail {0}
157 - name: steps::setup_node
158 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
159 with:
160 node-version: '20'
161 - id: clippy
162 name: steps::clippy
163 run: ./script/clippy
164 shell: bash -euxo pipefail {0}
165 - name: steps::cargo_install_nextest
166 uses: taiki-e/install-action@nextest
167 - name: steps::clear_target_dir_if_large
168 run: ./script/clear-target-dir-if-larger-than 250
169 shell: bash -euxo pipefail {0}
170 - name: steps::cargo_nextest
171 run: cargo nextest run --workspace --no-fail-fast
172 shell: bash -euxo pipefail {0}
173 - name: steps::cleanup_cargo_config
174 if: always()
175 run: |
176 rm -rf ./../.cargo
177 shell: bash -euxo pipefail {0}
178 outputs:
179 clippy_failed: ${{ steps.clippy.outcome == 'failure' }}
180 timeout-minutes: 60
181 run_tests_mac:
182 needs:
183 - orchestrate
184 if: needs.orchestrate.outputs.run_tests == 'true'
185 runs-on: self-mini-macos
186 steps:
187 - name: steps::checkout_repo
188 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
189 with:
190 clean: false
191 - name: steps::setup_cargo_config
192 run: |
193 mkdir -p ./../.cargo
194 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
195 shell: bash -euxo pipefail {0}
196 - name: steps::setup_node
197 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
198 with:
199 node-version: '20'
200 - id: clippy
201 name: steps::clippy
202 run: ./script/clippy
203 shell: bash -euxo pipefail {0}
204 - name: steps::clear_target_dir_if_large
205 run: ./script/clear-target-dir-if-larger-than 300
206 shell: bash -euxo pipefail {0}
207 - name: steps::cargo_nextest
208 run: cargo nextest run --workspace --no-fail-fast
209 shell: bash -euxo pipefail {0}
210 - name: steps::cleanup_cargo_config
211 if: always()
212 run: |
213 rm -rf ./../.cargo
214 shell: bash -euxo pipefail {0}
215 timeout-minutes: 60
216 doctests:
217 needs:
218 - orchestrate
219 if: needs.orchestrate.outputs.run_tests == 'true'
220 runs-on: namespace-profile-16x32-ubuntu-2204
221 steps:
222 - name: steps::checkout_repo
223 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
224 with:
225 clean: false
226 - name: steps::cache_rust_dependencies_namespace
227 uses: namespacelabs/nscloud-cache-action@v1
228 with:
229 cache: rust
230 - name: steps::setup_linux
231 run: ./script/linux
232 shell: bash -euxo pipefail {0}
233 - name: steps::install_mold
234 run: ./script/install-mold
235 shell: bash -euxo pipefail {0}
236 - name: steps::download_wasi_sdk
237 run: ./script/download-wasi-sdk
238 shell: bash -euxo pipefail {0}
239 - name: steps::setup_cargo_config
240 run: |
241 mkdir -p ./../.cargo
242 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
243 shell: bash -euxo pipefail {0}
244 - id: run_doctests
245 name: run_tests::doctests::run_doctests
246 run: |
247 cargo test --workspace --doc --no-fail-fast
248 shell: bash -euxo pipefail {0}
249 - name: steps::cleanup_cargo_config
250 if: always()
251 run: |
252 rm -rf ./../.cargo
253 shell: bash -euxo pipefail {0}
254 timeout-minutes: 60
255 check_workspace_binaries:
256 needs:
257 - orchestrate
258 if: needs.orchestrate.outputs.run_tests == 'true'
259 runs-on: namespace-profile-8x16-ubuntu-2204
260 steps:
261 - name: steps::checkout_repo
262 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
263 with:
264 clean: false
265 - name: steps::setup_cargo_config
266 run: |
267 mkdir -p ./../.cargo
268 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
269 shell: bash -euxo pipefail {0}
270 - name: steps::cache_rust_dependencies_namespace
271 uses: namespacelabs/nscloud-cache-action@v1
272 with:
273 cache: rust
274 - name: steps::setup_linux
275 run: ./script/linux
276 shell: bash -euxo pipefail {0}
277 - name: steps::install_mold
278 run: ./script/install-mold
279 shell: bash -euxo pipefail {0}
280 - name: steps::download_wasi_sdk
281 run: ./script/download-wasi-sdk
282 shell: bash -euxo pipefail {0}
283 - name: cargo build -p collab
284 run: cargo build -p collab
285 shell: bash -euxo pipefail {0}
286 - name: cargo build --workspace --bins --examples
287 run: cargo build --workspace --bins --examples
288 shell: bash -euxo pipefail {0}
289 - name: steps::cleanup_cargo_config
290 if: always()
291 run: |
292 rm -rf ./../.cargo
293 shell: bash -euxo pipefail {0}
294 timeout-minutes: 60
295 check_dependencies:
296 needs:
297 - orchestrate
298 if: needs.orchestrate.outputs.run_tests == 'true'
299 runs-on: namespace-profile-2x4-ubuntu-2404
300 steps:
301 - name: steps::checkout_repo
302 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
303 with:
304 clean: false
305 - name: steps::cache_rust_dependencies_namespace
306 uses: namespacelabs/nscloud-cache-action@v1
307 with:
308 cache: rust
309 - name: run_tests::check_dependencies::install_cargo_machete
310 uses: clechasseur/rs-cargo@8435b10f6e71c2e3d4d3b7573003a8ce4bfc6386
311 with:
312 command: install
313 args: cargo-machete@0.7.0
314 - name: run_tests::check_dependencies::run_cargo_machete
315 uses: clechasseur/rs-cargo@8435b10f6e71c2e3d4d3b7573003a8ce4bfc6386
316 with:
317 command: machete
318 - name: run_tests::check_dependencies::check_cargo_lock
319 run: cargo update --locked --workspace
320 shell: bash -euxo pipefail {0}
321 - name: run_tests::check_dependencies::check_vulnerable_dependencies
322 if: github.event_name == 'pull_request'
323 uses: actions/dependency-review-action@67d4f4bd7a9b17a0db54d2a7519187c65e339de8
324 with:
325 license-check: false
326 timeout-minutes: 60
327 check_docs:
328 needs:
329 - orchestrate
330 if: needs.orchestrate.outputs.run_docs == 'true'
331 runs-on: namespace-profile-8x16-ubuntu-2204
332 steps:
333 - name: steps::checkout_repo
334 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
335 with:
336 clean: false
337 - name: steps::setup_cargo_config
338 run: |
339 mkdir -p ./../.cargo
340 cp ./.cargo/ci-config.toml ./../.cargo/config.toml
341 shell: bash -euxo pipefail {0}
342 - name: steps::cache_rust_dependencies_namespace
343 uses: namespacelabs/nscloud-cache-action@v1
344 with:
345 cache: rust
346 - name: run_tests::check_docs::lychee_link_check
347 uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332
348 with:
349 args: --no-progress --exclude '^http' './docs/src/**/*'
350 fail: true
351 jobSummary: false
352 - name: steps::setup_linux
353 run: ./script/linux
354 shell: bash -euxo pipefail {0}
355 - name: steps::install_mold
356 run: ./script/install-mold
357 shell: bash -euxo pipefail {0}
358 - name: steps::download_wasi_sdk
359 run: ./script/download-wasi-sdk
360 shell: bash -euxo pipefail {0}
361 - name: run_tests::check_docs::install_mdbook
362 uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08
363 with:
364 mdbook-version: 0.4.37
365 - name: run_tests::check_docs::build_docs
366 run: |
367 mkdir -p target/deploy
368 mdbook build ./docs --dest-dir=../target/deploy/docs/
369 shell: bash -euxo pipefail {0}
370 - name: run_tests::check_docs::lychee_link_check
371 uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332
372 with:
373 args: --no-progress --exclude '^http' 'target/deploy/docs'
374 fail: true
375 jobSummary: false
376 timeout-minutes: 60
377 check_licenses:
378 needs:
379 - orchestrate
380 if: needs.orchestrate.outputs.run_licenses == 'true'
381 runs-on: namespace-profile-2x4-ubuntu-2404
382 steps:
383 - name: steps::checkout_repo
384 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
385 with:
386 clean: false
387 - name: steps::cache_rust_dependencies_namespace
388 uses: namespacelabs/nscloud-cache-action@v1
389 with:
390 cache: rust
391 - name: ./script/check-licenses
392 run: ./script/check-licenses
393 shell: bash -euxo pipefail {0}
394 - name: ./script/generate-licenses
395 run: ./script/generate-licenses
396 shell: bash -euxo pipefail {0}
397 check_scripts:
398 needs:
399 - orchestrate
400 if: needs.orchestrate.outputs.run_action_checks == 'true'
401 runs-on: namespace-profile-2x4-ubuntu-2404
402 steps:
403 - name: steps::checkout_repo
404 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
405 with:
406 clean: false
407 - name: run_tests::check_scripts::run_shellcheck
408 run: ./script/shellcheck-scripts error
409 shell: bash -euxo pipefail {0}
410 - id: get_actionlint
411 name: run_tests::check_scripts::download_actionlint
412 run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
413 shell: bash -euxo pipefail {0}
414 - name: run_tests::check_scripts::run_actionlint
415 run: |
416 ${{ steps.get_actionlint.outputs.executable }} -color
417 shell: bash -euxo pipefail {0}
418 - name: run_tests::check_scripts::check_xtask_workflows
419 run: |
420 cargo xtask workflows
421 if ! git diff --exit-code .github; then
422 echo "Error: .github directory has uncommitted changes after running 'cargo xtask workflows'"
423 echo "Please run 'cargo xtask workflows' locally and commit the changes"
424 exit 1
425 fi
426 shell: bash -euxo pipefail {0}
427 timeout-minutes: 60
428 build_nix_linux_x86_64:
429 needs:
430 - orchestrate
431 if: needs.orchestrate.outputs.run_nix == 'true'
432 runs-on: namespace-profile-32x64-ubuntu-2004
433 env:
434 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
435 ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
436 ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
437 GIT_LFS_SKIP_SMUDGE: '1'
438 steps:
439 - name: steps::checkout_repo
440 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
441 with:
442 clean: false
443 - name: nix_build::build_nix::install_nix
444 uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f
445 with:
446 github_access_token: ${{ secrets.GITHUB_TOKEN }}
447 - name: nix_build::build_nix::cachix_action
448 uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad
449 with:
450 name: zed
451 authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
452 cachixArgs: -v
453 pushFilter: -zed-editor-[0-9.]*-nightly
454 - name: nix_build::build_nix::build
455 run: nix build .#debug -L --accept-flake-config
456 shell: bash -euxo pipefail {0}
457 timeout-minutes: 60
458 continue-on-error: true
459 build_nix_mac_aarch64:
460 needs:
461 - orchestrate
462 if: needs.orchestrate.outputs.run_nix == 'true'
463 runs-on: self-mini-macos
464 env:
465 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
466 ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
467 ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
468 GIT_LFS_SKIP_SMUDGE: '1'
469 steps:
470 - name: steps::checkout_repo
471 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
472 with:
473 clean: false
474 - name: nix_build::build_nix::set_path
475 run: |
476 echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
477 echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH"
478 shell: bash -euxo pipefail {0}
479 - name: nix_build::build_nix::cachix_action
480 uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad
481 with:
482 name: zed
483 authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
484 cachixArgs: -v
485 pushFilter: -zed-editor-[0-9.]*-nightly
486 - name: nix_build::build_nix::build
487 run: nix build .#debug -L --accept-flake-config
488 shell: bash -euxo pipefail {0}
489 - name: nix_build::build_nix::limit_store
490 run: |-
491 if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then
492 nix-collect-garbage -d || true
493 fi
494 shell: bash -euxo pipefail {0}
495 timeout-minutes: 60
496 continue-on-error: true
497 check_postgres_and_protobuf_migrations:
498 needs:
499 - orchestrate
500 if: needs.orchestrate.outputs.run_tests == 'true'
501 runs-on: namespace-profile-16x32-ubuntu-2204
502 env:
503 GIT_AUTHOR_NAME: Protobuf Action
504 GIT_AUTHOR_EMAIL: ci@zed.dev
505 GIT_COMMITTER_NAME: Protobuf Action
506 GIT_COMMITTER_EMAIL: ci@zed.dev
507 steps:
508 - name: steps::checkout_repo
509 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
510 with:
511 fetch-depth: 0
512 - name: run_tests::check_postgres_and_protobuf_migrations::remove_untracked_files
513 run: git clean -df
514 shell: bash -euxo pipefail {0}
515 - name: run_tests::check_postgres_and_protobuf_migrations::ensure_fresh_merge
516 run: |
517 if [ -z "$GITHUB_BASE_REF" ];
518 then
519 echo "BUF_BASE_BRANCH=$(git merge-base origin/main HEAD)" >> "$GITHUB_ENV"
520 else
521 git checkout -B temp
522 git merge -q "origin/$GITHUB_BASE_REF" -m "merge main into temp"
523 echo "BUF_BASE_BRANCH=$GITHUB_BASE_REF" >> "$GITHUB_ENV"
524 fi
525 shell: bash -euxo pipefail {0}
526 - name: run_tests::check_postgres_and_protobuf_migrations::bufbuild_setup_action
527 uses: bufbuild/buf-setup-action@v1
528 with:
529 version: v1.29.0
530 github_token: ${{ secrets.GITHUB_TOKEN }}
531 - name: run_tests::check_postgres_and_protobuf_migrations::bufbuild_breaking_action
532 uses: bufbuild/buf-breaking-action@v1
533 with:
534 input: crates/proto/proto/
535 against: https://github.com/${GITHUB_REPOSITORY}.git#branch=${BUF_BASE_BRANCH},subdir=crates/proto/proto/
536 timeout-minutes: 60
537 tests_pass:
538 needs:
539 - orchestrate
540 - check_style
541 - run_tests_windows
542 - run_tests_linux
543 - run_tests_mac
544 - doctests
545 - check_workspace_binaries
546 - check_dependencies
547 - check_docs
548 - check_licenses
549 - check_scripts
550 - build_nix_linux_x86_64
551 - build_nix_mac_aarch64
552 if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && always()
553 runs-on: namespace-profile-2x4-ubuntu-2404
554 steps:
555 - name: run_tests::tests_pass
556 run: |
557 set +x
558 EXIT_CODE=0
559
560 check_result() {
561 echo "* $1: $2"
562 if [[ "$2" != "skipped" && "$2" != "success" ]]; then EXIT_CODE=1; fi
563 }
564
565 check_result "orchestrate" "${{ needs.orchestrate.result }}"
566 check_result "check_style" "${{ needs.check_style.result }}"
567 check_result "run_tests_windows" "${{ needs.run_tests_windows.result }}"
568 check_result "run_tests_linux" "${{ needs.run_tests_linux.result }}"
569 check_result "run_tests_mac" "${{ needs.run_tests_mac.result }}"
570 check_result "doctests" "${{ needs.doctests.result }}"
571 check_result "check_workspace_binaries" "${{ needs.check_workspace_binaries.result }}"
572 check_result "check_dependencies" "${{ needs.check_dependencies.result }}"
573 check_result "check_docs" "${{ needs.check_docs.result }}"
574 check_result "check_licenses" "${{ needs.check_licenses.result }}"
575 check_result "check_scripts" "${{ needs.check_scripts.result }}"
576 check_result "build_nix_linux_x86_64" "${{ needs.build_nix_linux_x86_64.result }}"
577 check_result "build_nix_mac_aarch64" "${{ needs.build_nix_mac_aarch64.result }}"
578
579 exit $EXIT_CODE
580 shell: bash -euxo pipefail {0}
581 call_autofix:
582 needs:
583 - check_style
584 - run_tests_linux
585 if: (needs.check_style.result == 'failure' || needs.run_tests_linux.outputs.clippy_failed == 'true') && github.event_name == 'pull_request' && github.actor != 'zed-zippy[bot]'
586 runs-on: namespace-profile-2x4-ubuntu-2404
587 steps:
588 - id: get-app-token
589 name: steps::authenticate_as_zippy
590 uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1
591 with:
592 app-id: ${{ secrets.ZED_ZIPPY_APP_ID }}
593 private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }}
594 - name: run_tests::call_autofix::dispatch_autofix
595 run: gh workflow run autofix_pr.yml -f pr_number=${{ github.event.pull_request.number }} -f run_clippy=${{ needs.run_tests_linux.outputs.clippy_failed == 'true' }}
596 shell: bash -euxo pipefail {0}
597 env:
598 GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }}
599concurrency:
600 group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
601 cancel-in-progress: true