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