run_tests.yml

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