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