release.yml

  1# Generated from xtask::workflows::release
  2# Rebuild with `cargo xtask workflows`.
  3name: release
  4env:
  5  CARGO_TERM_COLOR: always
  6  RUST_BACKTRACE: '1'
  7on:
  8  push:
  9    tags:
 10    - v*
 11jobs:
 12  run_tests_mac:
 13    if: github.repository_owner == 'zed-industries'
 14    runs-on: self-mini-macos
 15    steps:
 16    - name: steps::checkout_repo
 17      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
 18      with:
 19        clean: false
 20    - name: steps::setup_cargo_config
 21      run: |
 22        mkdir -p ./../.cargo
 23        cp ./.cargo/ci-config.toml ./../.cargo/config.toml
 24      shell: bash -euxo pipefail {0}
 25    - name: steps::setup_node
 26      uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
 27      with:
 28        node-version: '20'
 29    - name: steps::clippy
 30      run: ./script/clippy
 31      shell: bash -euxo pipefail {0}
 32    - name: steps::cargo_install_nextest
 33      run: cargo install cargo-nextest --locked
 34      shell: bash -euxo pipefail {0}
 35    - name: steps::clear_target_dir_if_large
 36      run: ./script/clear-target-dir-if-larger-than 300
 37      shell: bash -euxo pipefail {0}
 38    - name: steps::cargo_nextest
 39      run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
 40      shell: bash -euxo pipefail {0}
 41    - name: steps::cleanup_cargo_config
 42      if: always()
 43      run: |
 44        rm -rf ./../.cargo
 45      shell: bash -euxo pipefail {0}
 46    timeout-minutes: 60
 47  run_tests_linux:
 48    if: github.repository_owner == 'zed-industries'
 49    runs-on: namespace-profile-16x32-ubuntu-2204
 50    steps:
 51    - name: steps::checkout_repo
 52      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
 53      with:
 54        clean: false
 55    - name: steps::setup_cargo_config
 56      run: |
 57        mkdir -p ./../.cargo
 58        cp ./.cargo/ci-config.toml ./../.cargo/config.toml
 59      shell: bash -euxo pipefail {0}
 60    - name: steps::setup_linux
 61      run: ./script/linux
 62      shell: bash -euxo pipefail {0}
 63    - name: steps::install_mold
 64      run: ./script/install-mold
 65      shell: bash -euxo pipefail {0}
 66    - name: steps::setup_node
 67      uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
 68      with:
 69        node-version: '20'
 70    - name: steps::clippy
 71      run: ./script/clippy
 72      shell: bash -euxo pipefail {0}
 73    - name: steps::cargo_install_nextest
 74      run: cargo install cargo-nextest --locked
 75      shell: bash -euxo pipefail {0}
 76    - name: steps::clear_target_dir_if_large
 77      run: ./script/clear-target-dir-if-larger-than 100
 78      shell: bash -euxo pipefail {0}
 79    - name: steps::cargo_nextest
 80      run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
 81      shell: bash -euxo pipefail {0}
 82    - name: steps::cleanup_cargo_config
 83      if: always()
 84      run: |
 85        rm -rf ./../.cargo
 86      shell: bash -euxo pipefail {0}
 87    timeout-minutes: 60
 88  run_tests_windows:
 89    if: github.repository_owner == 'zed-industries'
 90    runs-on: self-32vcpu-windows-2022
 91    steps:
 92    - name: steps::checkout_repo
 93      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
 94      with:
 95        clean: false
 96    - name: steps::setup_cargo_config
 97      run: |
 98        New-Item -ItemType Directory -Path "./../.cargo" -Force
 99        Copy-Item -Path "./.cargo/ci-config.toml" -Destination "./../.cargo/config.toml"
100      shell: pwsh
101    - name: steps::setup_node
102      uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
103      with:
104        node-version: '20'
105    - name: steps::clippy
106      run: ./script/clippy.ps1
107      shell: pwsh
108    - name: steps::cargo_install_nextest
109      run: cargo install cargo-nextest --locked
110      shell: pwsh
111    - name: steps::clear_target_dir_if_large
112      run: ./script/clear-target-dir-if-larger-than.ps1 250
113      shell: pwsh
114    - name: steps::cargo_nextest
115      run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
116      shell: pwsh
117    - name: steps::cleanup_cargo_config
118      if: always()
119      run: |
120        Remove-Item -Recurse -Path "./../.cargo" -Force -ErrorAction SilentlyContinue
121      shell: pwsh
122    timeout-minutes: 60
123  check_scripts:
124    if: github.repository_owner == 'zed-industries'
125    runs-on: namespace-profile-2x4-ubuntu-2404
126    steps:
127    - name: steps::checkout_repo
128      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
129      with:
130        clean: false
131    - name: run_tests::check_scripts::run_shellcheck
132      run: ./script/shellcheck-scripts error
133      shell: bash -euxo pipefail {0}
134    - id: get_actionlint
135      name: run_tests::check_scripts::download_actionlint
136      run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
137      shell: bash -euxo pipefail {0}
138    - name: run_tests::check_scripts::run_actionlint
139      run: |
140        ${{ steps.get_actionlint.outputs.executable }} -color
141      shell: bash -euxo pipefail {0}
142    - name: run_tests::check_scripts::check_xtask_workflows
143      run: |
144        cargo xtask workflows
145        if ! git diff --exit-code .github; then
146          echo "Error: .github directory has uncommitted changes after running 'cargo xtask workflows'"
147          echo "Please run 'cargo xtask workflows' locally and commit the changes"
148          exit 1
149        fi
150      shell: bash -euxo pipefail {0}
151    timeout-minutes: 60
152  create_draft_release:
153    if: github.repository_owner == 'zed-industries'
154    runs-on: namespace-profile-2x4-ubuntu-2404
155    steps:
156    - name: steps::checkout_repo
157      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
158      with:
159        clean: false
160        fetch-depth: 25
161        ref: ${{ github.ref }}
162    - name: script/determine-release-channel
163      run: script/determine-release-channel
164      shell: bash -euxo pipefail {0}
165    - name: mkdir -p target/
166      run: mkdir -p target/
167      shell: bash -euxo pipefail {0}
168    - name: release::create_draft_release::generate_release_notes
169      run: node --redirect-warnings=/dev/null ./script/draft-release-notes "$RELEASE_VERSION" "$RELEASE_CHANNEL" > target/release-notes.md
170      shell: bash -euxo pipefail {0}
171    - name: release::create_draft_release::create_release
172      run: script/create-draft-release target/release-notes.md
173      shell: bash -euxo pipefail {0}
174      env:
175        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
176    timeout-minutes: 60
177  bundle_linux_aarch64:
178    needs:
179    - run_tests_linux
180    - check_scripts
181    runs-on: namespace-profile-8x32-ubuntu-2004-arm-m4
182    env:
183      CARGO_INCREMENTAL: 0
184      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
185      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
186    steps:
187    - name: steps::checkout_repo
188      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
189      with:
190        clean: false
191    - name: steps::setup_sentry
192      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
193      with:
194        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
195    - name: steps::setup_linux
196      run: ./script/linux
197      shell: bash -euxo pipefail {0}
198    - name: steps::install_mold
199      run: ./script/install-mold
200      shell: bash -euxo pipefail {0}
201    - name: ./script/bundle-linux
202      run: ./script/bundle-linux
203      shell: bash -euxo pipefail {0}
204    - name: '@actions/upload-artifact zed-linux-aarch64.tar.gz'
205      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
206      with:
207        name: zed-linux-aarch64.tar.gz
208        path: target/release/zed-*.tar.gz
209        if-no-files-found: error
210    - name: '@actions/upload-artifact zed-remote-server-linux-aarch64.gz'
211      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
212      with:
213        name: zed-remote-server-linux-aarch64.gz
214        path: target/zed-remote-server-*.gz
215        if-no-files-found: error
216    outputs:
217      zed: zed-linux-aarch64.tar.gz
218      remote-server: zed-remote-server-linux-aarch64.gz
219    timeout-minutes: 60
220  bundle_linux_x86_64:
221    needs:
222    - run_tests_linux
223    - check_scripts
224    runs-on: namespace-profile-32x64-ubuntu-2004
225    env:
226      CARGO_INCREMENTAL: 0
227      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
228      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
229    steps:
230    - name: steps::checkout_repo
231      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
232      with:
233        clean: false
234    - name: steps::setup_sentry
235      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
236      with:
237        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
238    - name: steps::setup_linux
239      run: ./script/linux
240      shell: bash -euxo pipefail {0}
241    - name: steps::install_mold
242      run: ./script/install-mold
243      shell: bash -euxo pipefail {0}
244    - name: ./script/bundle-linux
245      run: ./script/bundle-linux
246      shell: bash -euxo pipefail {0}
247    - name: '@actions/upload-artifact zed-linux-x86_64.tar.gz'
248      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
249      with:
250        name: zed-linux-x86_64.tar.gz
251        path: target/release/zed-*.tar.gz
252        if-no-files-found: error
253    - name: '@actions/upload-artifact zed-remote-server-linux-x86_64.gz'
254      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
255      with:
256        name: zed-remote-server-linux-x86_64.gz
257        path: target/zed-remote-server-*.gz
258        if-no-files-found: error
259    outputs:
260      zed: zed-linux-x86_64.tar.gz
261      remote-server: zed-remote-server-linux-x86_64.gz
262    timeout-minutes: 60
263  bundle_mac_aarch64:
264    needs:
265    - run_tests_mac
266    - check_scripts
267    runs-on: self-mini-macos
268    env:
269      CARGO_INCREMENTAL: 0
270      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
271      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
272      MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
273      MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
274      APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
275      APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
276      APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }}
277    steps:
278    - name: steps::checkout_repo
279      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
280      with:
281        clean: false
282    - name: steps::setup_node
283      uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
284      with:
285        node-version: '20'
286    - name: steps::setup_sentry
287      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
288      with:
289        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
290    - name: steps::clear_target_dir_if_large
291      run: ./script/clear-target-dir-if-larger-than 300
292      shell: bash -euxo pipefail {0}
293    - name: run_bundling::bundle_mac::bundle_mac
294      run: ./script/bundle-mac aarch64-apple-darwin
295      shell: bash -euxo pipefail {0}
296    - name: '@actions/upload-artifact Zed-aarch64.dmg'
297      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
298      with:
299        name: Zed-aarch64.dmg
300        path: target/aarch64-apple-darwin/release/Zed.dmg
301        if-no-files-found: error
302    - name: '@actions/upload-artifact zed-remote-server-macos-aarch64.gz'
303      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
304      with:
305        name: zed-remote-server-macos-aarch64.gz
306        path: target/zed-remote-server-macos-aarch64.gz
307        if-no-files-found: error
308    outputs:
309      zed: Zed-aarch64.dmg
310      remote-server: zed-remote-server-macos-aarch64.gz
311    timeout-minutes: 60
312  bundle_mac_x86_64:
313    needs:
314    - run_tests_mac
315    - check_scripts
316    runs-on: self-mini-macos
317    env:
318      CARGO_INCREMENTAL: 0
319      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
320      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
321      MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
322      MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
323      APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
324      APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
325      APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }}
326    steps:
327    - name: steps::checkout_repo
328      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
329      with:
330        clean: false
331    - name: steps::setup_node
332      uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
333      with:
334        node-version: '20'
335    - name: steps::setup_sentry
336      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
337      with:
338        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
339    - name: steps::clear_target_dir_if_large
340      run: ./script/clear-target-dir-if-larger-than 300
341      shell: bash -euxo pipefail {0}
342    - name: run_bundling::bundle_mac::bundle_mac
343      run: ./script/bundle-mac x86_64-apple-darwin
344      shell: bash -euxo pipefail {0}
345    - name: '@actions/upload-artifact Zed-x86_64.dmg'
346      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
347      with:
348        name: Zed-x86_64.dmg
349        path: target/x86_64-apple-darwin/release/Zed.dmg
350        if-no-files-found: error
351    - name: '@actions/upload-artifact zed-remote-server-macos-x86_64.gz'
352      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
353      with:
354        name: zed-remote-server-macos-x86_64.gz
355        path: target/zed-remote-server-macos-x86_64.gz
356        if-no-files-found: error
357    outputs:
358      zed: Zed-x86_64.dmg
359      remote-server: zed-remote-server-macos-x86_64.gz
360    timeout-minutes: 60
361  bundle_windows_aarch64:
362    needs:
363    - run_tests_windows
364    - check_scripts
365    runs-on: self-32vcpu-windows-2022
366    env:
367      CARGO_INCREMENTAL: 0
368      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
369      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
370      AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
371      AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
372      AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
373      ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }}
374      CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }}
375      ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }}
376      FILE_DIGEST: SHA256
377      TIMESTAMP_DIGEST: SHA256
378      TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com
379    steps:
380    - name: steps::checkout_repo
381      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
382      with:
383        clean: false
384    - name: steps::setup_sentry
385      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
386      with:
387        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
388    - name: run_bundling::bundle_windows::bundle_windows
389      run: script/bundle-windows.ps1 -Architecture aarch64
390      shell: pwsh
391      working-directory: ${{ env.ZED_WORKSPACE }}
392    - name: '@actions/upload-artifact Zed-aarch64.exe'
393      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
394      with:
395        name: Zed-aarch64.exe
396        path: ${{ env.SETUP_PATH }}
397        if-no-files-found: error
398    outputs:
399      zed: Zed-aarch64.exe
400    timeout-minutes: 60
401  bundle_windows_x86_64:
402    needs:
403    - run_tests_windows
404    - check_scripts
405    runs-on: self-32vcpu-windows-2022
406    env:
407      CARGO_INCREMENTAL: 0
408      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
409      ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
410      AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
411      AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
412      AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
413      ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }}
414      CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }}
415      ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }}
416      FILE_DIGEST: SHA256
417      TIMESTAMP_DIGEST: SHA256
418      TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com
419    steps:
420    - name: steps::checkout_repo
421      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
422      with:
423        clean: false
424    - name: steps::setup_sentry
425      uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
426      with:
427        token: ${{ secrets.SENTRY_AUTH_TOKEN }}
428    - name: run_bundling::bundle_windows::bundle_windows
429      run: script/bundle-windows.ps1 -Architecture x86_64
430      shell: pwsh
431      working-directory: ${{ env.ZED_WORKSPACE }}
432    - name: '@actions/upload-artifact Zed-x86_64.exe'
433      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
434      with:
435        name: Zed-x86_64.exe
436        path: ${{ env.SETUP_PATH }}
437        if-no-files-found: error
438    outputs:
439      zed: Zed-x86_64.exe
440    timeout-minutes: 60
441  upload_release_assets:
442    needs:
443    - create_draft_release
444    - bundle_linux_aarch64
445    - bundle_linux_x86_64
446    - bundle_mac_aarch64
447    - bundle_mac_x86_64
448    - bundle_windows_aarch64
449    - bundle_windows_x86_64
450    runs-on: namespace-profile-4x8-ubuntu-2204
451    steps:
452    - name: release::download_workflow_artifacts
453      uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53
454      with:
455        path: ./artifacts/
456    - name: ls -lR ./artifacts
457      run: ls -lR ./artifacts
458      shell: bash -euxo pipefail {0}
459    - name: release::prep_release_artifacts
460      run: |-
461        mkdir -p release-artifacts/
462
463        mv ./artifacts/Zed-aarch64.dmg/Zed-aarch64.dmg release-artifacts/Zed-aarch64.dmg
464        mv ./artifacts/Zed-x86_64.dmg/Zed-x86_64.dmg release-artifacts/Zed-x86_64.dmg
465        mv ./artifacts/zed-linux-aarch64.tar.gz/zed-linux-aarch64.tar.gz release-artifacts/zed-linux-aarch64.tar.gz
466        mv ./artifacts/zed-linux-x86_64.tar.gz/zed-linux-x86_64.tar.gz release-artifacts/zed-linux-x86_64.tar.gz
467        mv ./artifacts/Zed-x86_64.exe/Zed-x86_64.exe release-artifacts/Zed-x86_64.exe
468        mv ./artifacts/Zed-aarch64.exe/Zed-aarch64.exe release-artifacts/Zed-aarch64.exe
469        mv ./artifacts/zed-remote-server-macos-aarch64.gz/zed-remote-server-macos-aarch64.gz release-artifacts/zed-remote-server-macos-aarch64.gz
470        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
471        mv ./artifacts/zed-remote-server-linux-aarch64.gz/zed-remote-server-linux-aarch64.gz release-artifacts/zed-remote-server-linux-aarch64.gz
472        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
473      shell: bash -euxo pipefail {0}
474    - name: gh release upload "$GITHUB_REF_NAME" --repo=zed-industries/zed release-artifacts/*
475      run: gh release upload "$GITHUB_REF_NAME" --repo=zed-industries/zed release-artifacts/*
476      shell: bash -euxo pipefail {0}
477      env:
478        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
479  auto_release_preview:
480    needs:
481    - upload_release_assets
482    if: |
483      false
484      && startsWith(github.ref, 'refs/tags/v')
485      && endsWith(github.ref, '-pre') && !endsWith(github.ref, '.0-pre')
486    runs-on: namespace-profile-2x4-ubuntu-2404
487    steps:
488    - name: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false
489      run: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false
490      shell: bash -euxo pipefail {0}
491      env:
492        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
493    - name: release::create_sentry_release
494      uses: getsentry/action-release@526942b68292201ac6bbb99b9a0747d4abee354c
495      with:
496        environment: production
497      env:
498        SENTRY_ORG: zed-dev
499        SENTRY_PROJECT: zed
500        SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
501concurrency:
502  group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
503  cancel-in-progress: true