release_nightly.yml

  1# Generated from xtask::workflows::release_nightly
  2# Rebuild with `cargo xtask workflows`.
  3name: release_nightly
  4env:
  5  CARGO_TERM_COLOR: always
  6  RUST_BACKTRACE: '1'
  7on:
  8  push:
  9    tags:
 10    - nightly
 11  schedule:
 12  - cron: 0 7 * * *
 13jobs:
 14  check_style:
 15    if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
 16    runs-on: self-mini-macos
 17    steps:
 18    - name: steps::checkout_repo
 19      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
 20      with:
 21        clean: false
 22        fetch-depth: 0
 23    - id: cargo_fmt
 24      name: steps::cargo_fmt
 25      run: cargo fmt --all -- --check
 26      shell: bash -euxo pipefail {0}
 27    - name: ./script/clippy
 28      run: ./script/clippy
 29      shell: bash -euxo pipefail {0}
 30    timeout-minutes: 60
 31  run_tests_windows:
 32    if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
 33    runs-on: self-32vcpu-windows-2022
 34    steps:
 35    - name: steps::checkout_repo
 36      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
 37      with:
 38        clean: false
 39    - name: steps::setup_cargo_config
 40      run: |
 41        New-Item -ItemType Directory -Path "./../.cargo" -Force
 42        Copy-Item -Path "./.cargo/ci-config.toml" -Destination "./../.cargo/config.toml"
 43      shell: pwsh
 44    - name: steps::setup_node
 45      uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
 46      with:
 47        node-version: '20'
 48    - id: clippy
 49      name: steps::clippy
 50      run: ./script/clippy.ps1
 51      shell: pwsh
 52    - name: steps::clear_target_dir_if_large
 53      run: ./script/clear-target-dir-if-larger-than.ps1 250
 54      shell: pwsh
 55    - name: steps::cargo_nextest
 56      run: cargo nextest run --workspace --no-fail-fast
 57      shell: pwsh
 58    - name: steps::cleanup_cargo_config
 59      if: always()
 60      run: |
 61        Remove-Item -Recurse -Path "./../.cargo" -Force -ErrorAction SilentlyContinue
 62      shell: pwsh
 63    timeout-minutes: 60
 64  bundle_linux_aarch64:
 65    needs:
 66    - check_style
 67    - run_tests_windows
 68    runs-on: namespace-profile-8x32-ubuntu-2004-arm-m4
 69    env:
 70      CARGO_INCREMENTAL: 0
 71      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
 72      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
 73    steps:
 74    - name: steps::checkout_repo
 75      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
 76      with:
 77        clean: false
 78    - name: run_bundling::set_release_channel_to_nightly
 79      run: |
 80        set -eu
 81        version=$(git rev-parse --short HEAD)
 82        echo "Publishing version: ${version} on release channel nightly"
 83        echo "nightly" > crates/zed/RELEASE_CHANNEL
 84      shell: bash -euxo pipefail {0}
 85    - name: steps::setup_sentry
 86      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
 87      with:
 88        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
 89    - name: steps::setup_linux
 90      run: ./script/linux
 91      shell: bash -euxo pipefail {0}
 92    - name: steps::install_mold
 93      run: ./script/install-mold
 94      shell: bash -euxo pipefail {0}
 95    - name: steps::download_wasi_sdk
 96      run: ./script/download-wasi-sdk
 97      shell: bash -euxo pipefail {0}
 98    - name: ./script/bundle-linux
 99      run: ./script/bundle-linux
100      shell: bash -euxo pipefail {0}
101    - name: '@actions/upload-artifact zed-linux-aarch64.tar.gz'
102      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
103      with:
104        name: zed-linux-aarch64.tar.gz
105        path: target/release/zed-linux-aarch64.tar.gz
106        if-no-files-found: error
107    - name: '@actions/upload-artifact zed-remote-server-linux-aarch64.gz'
108      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
109      with:
110        name: zed-remote-server-linux-aarch64.gz
111        path: target/zed-remote-server-linux-aarch64.gz
112        if-no-files-found: error
113    timeout-minutes: 60
114  bundle_linux_x86_64:
115    needs:
116    - check_style
117    - run_tests_windows
118    runs-on: namespace-profile-32x64-ubuntu-2004
119    env:
120      CARGO_INCREMENTAL: 0
121      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
122      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
123    steps:
124    - name: steps::checkout_repo
125      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
126      with:
127        clean: false
128    - name: run_bundling::set_release_channel_to_nightly
129      run: |
130        set -eu
131        version=$(git rev-parse --short HEAD)
132        echo "Publishing version: ${version} on release channel nightly"
133        echo "nightly" > crates/zed/RELEASE_CHANNEL
134      shell: bash -euxo pipefail {0}
135    - name: steps::setup_sentry
136      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
137      with:
138        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
139    - name: steps::setup_linux
140      run: ./script/linux
141      shell: bash -euxo pipefail {0}
142    - name: steps::install_mold
143      run: ./script/install-mold
144      shell: bash -euxo pipefail {0}
145    - name: steps::download_wasi_sdk
146      run: ./script/download-wasi-sdk
147      shell: bash -euxo pipefail {0}
148    - name: ./script/bundle-linux
149      run: ./script/bundle-linux
150      shell: bash -euxo pipefail {0}
151    - name: '@actions/upload-artifact zed-linux-x86_64.tar.gz'
152      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
153      with:
154        name: zed-linux-x86_64.tar.gz
155        path: target/release/zed-linux-x86_64.tar.gz
156        if-no-files-found: error
157    - name: '@actions/upload-artifact zed-remote-server-linux-x86_64.gz'
158      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
159      with:
160        name: zed-remote-server-linux-x86_64.gz
161        path: target/zed-remote-server-linux-x86_64.gz
162        if-no-files-found: error
163    timeout-minutes: 60
164  bundle_mac_aarch64:
165    needs:
166    - check_style
167    - run_tests_windows
168    runs-on: self-mini-macos
169    env:
170      CARGO_INCREMENTAL: 0
171      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
172      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
173      MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
174      MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
175      APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
176      APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
177      APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }}
178    steps:
179    - name: steps::checkout_repo
180      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
181      with:
182        clean: false
183    - name: run_bundling::set_release_channel_to_nightly
184      run: |
185        set -eu
186        version=$(git rev-parse --short HEAD)
187        echo "Publishing version: ${version} on release channel nightly"
188        echo "nightly" > crates/zed/RELEASE_CHANNEL
189      shell: bash -euxo pipefail {0}
190    - name: steps::setup_node
191      uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
192      with:
193        node-version: '20'
194    - name: steps::setup_sentry
195      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
196      with:
197        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
198    - name: steps::clear_target_dir_if_large
199      run: ./script/clear-target-dir-if-larger-than 300
200      shell: bash -euxo pipefail {0}
201    - name: run_bundling::bundle_mac::bundle_mac
202      run: ./script/bundle-mac aarch64-apple-darwin
203      shell: bash -euxo pipefail {0}
204    - name: '@actions/upload-artifact Zed-aarch64.dmg'
205      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
206      with:
207        name: Zed-aarch64.dmg
208        path: target/aarch64-apple-darwin/release/Zed-aarch64.dmg
209        if-no-files-found: error
210    - name: '@actions/upload-artifact zed-remote-server-macos-aarch64.gz'
211      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
212      with:
213        name: zed-remote-server-macos-aarch64.gz
214        path: target/zed-remote-server-macos-aarch64.gz
215        if-no-files-found: error
216    timeout-minutes: 60
217  bundle_mac_x86_64:
218    needs:
219    - check_style
220    - run_tests_windows
221    runs-on: self-mini-macos
222    env:
223      CARGO_INCREMENTAL: 0
224      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
225      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
226      MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
227      MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
228      APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
229      APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
230      APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }}
231    steps:
232    - name: steps::checkout_repo
233      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
234      with:
235        clean: false
236    - name: run_bundling::set_release_channel_to_nightly
237      run: |
238        set -eu
239        version=$(git rev-parse --short HEAD)
240        echo "Publishing version: ${version} on release channel nightly"
241        echo "nightly" > crates/zed/RELEASE_CHANNEL
242      shell: bash -euxo pipefail {0}
243    - name: steps::setup_node
244      uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
245      with:
246        node-version: '20'
247    - name: steps::setup_sentry
248      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
249      with:
250        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
251    - name: steps::clear_target_dir_if_large
252      run: ./script/clear-target-dir-if-larger-than 300
253      shell: bash -euxo pipefail {0}
254    - name: run_bundling::bundle_mac::bundle_mac
255      run: ./script/bundle-mac x86_64-apple-darwin
256      shell: bash -euxo pipefail {0}
257    - name: '@actions/upload-artifact Zed-x86_64.dmg'
258      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
259      with:
260        name: Zed-x86_64.dmg
261        path: target/x86_64-apple-darwin/release/Zed-x86_64.dmg
262        if-no-files-found: error
263    - name: '@actions/upload-artifact zed-remote-server-macos-x86_64.gz'
264      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
265      with:
266        name: zed-remote-server-macos-x86_64.gz
267        path: target/zed-remote-server-macos-x86_64.gz
268        if-no-files-found: error
269    timeout-minutes: 60
270  bundle_windows_aarch64:
271    needs:
272    - check_style
273    - run_tests_windows
274    runs-on: self-32vcpu-windows-2022
275    env:
276      CARGO_INCREMENTAL: 0
277      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
278      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
279      AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
280      AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
281      AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
282      ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }}
283      CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }}
284      ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }}
285      FILE_DIGEST: SHA256
286      TIMESTAMP_DIGEST: SHA256
287      TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com
288    steps:
289    - name: steps::checkout_repo
290      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
291      with:
292        clean: false
293    - name: run_bundling::set_release_channel_to_nightly
294      run: |
295        $ErrorActionPreference = "Stop"
296        $version = git rev-parse --short HEAD
297        Write-Host "Publishing version: $version on release channel nightly"
298        "nightly" | Set-Content -Path "crates/zed/RELEASE_CHANNEL"
299      shell: pwsh
300      working-directory: ${{ env.ZED_WORKSPACE }}
301    - name: steps::setup_sentry
302      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
303      with:
304        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
305    - name: run_bundling::bundle_windows::bundle_windows
306      run: script/bundle-windows.ps1 -Architecture aarch64
307      shell: pwsh
308      working-directory: ${{ env.ZED_WORKSPACE }}
309    - name: '@actions/upload-artifact Zed-aarch64.exe'
310      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
311      with:
312        name: Zed-aarch64.exe
313        path: target/Zed-aarch64.exe
314        if-no-files-found: error
315    timeout-minutes: 60
316  bundle_windows_x86_64:
317    needs:
318    - check_style
319    - run_tests_windows
320    runs-on: self-32vcpu-windows-2022
321    env:
322      CARGO_INCREMENTAL: 0
323      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
324      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
325      AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
326      AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
327      AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
328      ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }}
329      CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }}
330      ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }}
331      FILE_DIGEST: SHA256
332      TIMESTAMP_DIGEST: SHA256
333      TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com
334    steps:
335    - name: steps::checkout_repo
336      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
337      with:
338        clean: false
339    - name: run_bundling::set_release_channel_to_nightly
340      run: |
341        $ErrorActionPreference = "Stop"
342        $version = git rev-parse --short HEAD
343        Write-Host "Publishing version: $version on release channel nightly"
344        "nightly" | Set-Content -Path "crates/zed/RELEASE_CHANNEL"
345      shell: pwsh
346      working-directory: ${{ env.ZED_WORKSPACE }}
347    - name: steps::setup_sentry
348      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
349      with:
350        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
351    - name: run_bundling::bundle_windows::bundle_windows
352      run: script/bundle-windows.ps1 -Architecture x86_64
353      shell: pwsh
354      working-directory: ${{ env.ZED_WORKSPACE }}
355    - name: '@actions/upload-artifact Zed-x86_64.exe'
356      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
357      with:
358        name: Zed-x86_64.exe
359        path: target/Zed-x86_64.exe
360        if-no-files-found: error
361    timeout-minutes: 60
362  build_nix_linux_x86_64:
363    needs:
364    - check_style
365    - run_tests_windows
366    if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
367    runs-on: namespace-profile-32x64-ubuntu-2004
368    env:
369      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
370      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
371      ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
372      GIT_LFS_SKIP_SMUDGE: '1'
373    steps:
374    - name: steps::checkout_repo
375      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
376      with:
377        clean: false
378    - name: nix_build::build_nix::install_nix
379      uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f
380      with:
381        github_access_token: ${{ secrets.GITHUB_TOKEN }}
382    - name: nix_build::build_nix::cachix_action
383      uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad
384      with:
385        name: zed
386        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
387        cachixArgs: -v
388    - name: nix_build::build_nix::build
389      run: nix build .#default -L --accept-flake-config
390      shell: bash -euxo pipefail {0}
391    timeout-minutes: 60
392    continue-on-error: true
393  build_nix_mac_aarch64:
394    needs:
395    - check_style
396    - run_tests_windows
397    if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
398    runs-on: self-mini-macos
399    env:
400      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
401      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
402      ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
403      GIT_LFS_SKIP_SMUDGE: '1'
404    steps:
405    - name: steps::checkout_repo
406      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
407      with:
408        clean: false
409    - name: nix_build::build_nix::set_path
410      run: |
411        echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
412        echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH"
413      shell: bash -euxo pipefail {0}
414    - name: nix_build::build_nix::cachix_action
415      uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad
416      with:
417        name: zed
418        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
419        cachixArgs: -v
420    - name: nix_build::build_nix::build
421      run: nix build .#default -L --accept-flake-config
422      shell: bash -euxo pipefail {0}
423    - name: nix_build::build_nix::limit_store
424      run: |-
425        if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then
426            nix-collect-garbage -d || true
427        fi
428      shell: bash -euxo pipefail {0}
429    timeout-minutes: 60
430    continue-on-error: true
431  update_nightly_tag:
432    needs:
433    - bundle_linux_aarch64
434    - bundle_linux_x86_64
435    - bundle_mac_aarch64
436    - bundle_mac_x86_64
437    - bundle_windows_aarch64
438    - bundle_windows_x86_64
439    if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
440    runs-on: namespace-profile-4x8-ubuntu-2204
441    steps:
442    - name: steps::checkout_repo
443      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
444      with:
445        clean: false
446        fetch-depth: 0
447    - name: release::download_workflow_artifacts
448      uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
449      with:
450        path: ./artifacts/
451    - name: ls -lR ./artifacts
452      run: ls -lR ./artifacts
453      shell: bash -euxo pipefail {0}
454    - name: release::prep_release_artifacts
455      run: |-
456        mkdir -p release-artifacts/
457
458        mv ./artifacts/Zed-aarch64.dmg/Zed-aarch64.dmg release-artifacts/Zed-aarch64.dmg
459        mv ./artifacts/Zed-x86_64.dmg/Zed-x86_64.dmg release-artifacts/Zed-x86_64.dmg
460        mv ./artifacts/zed-linux-aarch64.tar.gz/zed-linux-aarch64.tar.gz release-artifacts/zed-linux-aarch64.tar.gz
461        mv ./artifacts/zed-linux-x86_64.tar.gz/zed-linux-x86_64.tar.gz release-artifacts/zed-linux-x86_64.tar.gz
462        mv ./artifacts/Zed-x86_64.exe/Zed-x86_64.exe release-artifacts/Zed-x86_64.exe
463        mv ./artifacts/Zed-aarch64.exe/Zed-aarch64.exe release-artifacts/Zed-aarch64.exe
464        mv ./artifacts/zed-remote-server-macos-aarch64.gz/zed-remote-server-macos-aarch64.gz release-artifacts/zed-remote-server-macos-aarch64.gz
465        mv ./artifacts/zed-remote-server-macos-x86_64.gz/zed-remote-server-macos-x86_64.gz release-artifacts/zed-remote-server-macos-x86_64.gz
466        mv ./artifacts/zed-remote-server-linux-aarch64.gz/zed-remote-server-linux-aarch64.gz release-artifacts/zed-remote-server-linux-aarch64.gz
467        mv ./artifacts/zed-remote-server-linux-x86_64.gz/zed-remote-server-linux-x86_64.gz release-artifacts/zed-remote-server-linux-x86_64.gz
468      shell: bash -euxo pipefail {0}
469    - name: ./script/upload-nightly
470      run: ./script/upload-nightly
471      shell: bash -euxo pipefail {0}
472      env:
473        DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }}
474        DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }}
475    - name: release_nightly::update_nightly_tag_job::update_nightly_tag
476      run: |
477        if [ "$(git rev-parse nightly)" = "$(git rev-parse HEAD)" ]; then
478          echo "Nightly tag already points to current commit. Skipping tagging."
479          exit 0
480        fi
481        git config user.name github-actions
482        git config user.email github-actions@github.com
483        git tag -f nightly
484        git push origin nightly --force
485      shell: bash -euxo pipefail {0}
486    - name: release::create_sentry_release
487      uses: getsentry/action-release@526942b68292201ac6bbb99b9a0747d4abee354c
488      with:
489        environment: production
490      env:
491        SENTRY_ORG: zed-dev
492        SENTRY_PROJECT: zed
493        SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
494    timeout-minutes: 60
495  notify_on_failure:
496    needs:
497    - bundle_linux_aarch64
498    - bundle_linux_x86_64
499    - bundle_mac_aarch64
500    - bundle_mac_x86_64
501    - bundle_windows_aarch64
502    - bundle_windows_x86_64
503    if: failure()
504    runs-on: namespace-profile-2x4-ubuntu-2404
505    steps:
506    - name: release::notify_on_failure::notify_slack
507      run: |-
508        curl -X POST -H 'Content-type: application/json'\
509         --data '{"text":"${{ github.workflow }} failed:  ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK"
510      shell: bash -euxo pipefail {0}
511      env:
512        SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }}