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