release.yml

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