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