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