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::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::cache_rust_dependencies_namespace
58 uses: namespacelabs/nscloud-cache-action@v1
59 with:
60 cache: rust
61 - name: steps::setup_linux
62 run: ./script/linux
63 shell: bash -euxo pipefail {0}
64 - name: steps::install_mold
65 run: ./script/install-mold
66 shell: bash -euxo pipefail {0}
67 - name: steps::download_wasi_sdk
68 run: ./script/download-wasi-sdk
69 shell: bash -euxo pipefail {0}
70 - name: steps::setup_node
71 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
72 with:
73 node-version: '20'
74 - name: steps::clippy
75 run: ./script/clippy
76 shell: bash -euxo pipefail {0}
77 - name: steps::cargo_install_nextest
78 uses: taiki-e/install-action@nextest
79 - name: steps::clear_target_dir_if_large
80 run: ./script/clear-target-dir-if-larger-than 250
81 shell: bash -euxo pipefail {0}
82 - name: steps::cargo_nextest
83 run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final
84 shell: bash -euxo pipefail {0}
85 - name: steps::cleanup_cargo_config
86 if: always()
87 run: |
88 rm -rf ./../.cargo
89 shell: bash -euxo pipefail {0}
90 timeout-minutes: 60
91 run_tests_windows:
92 if: github.repository_owner == 'zed-industries'
93 runs-on: self-32vcpu-windows-2022
94 steps:
95 - name: steps::checkout_repo
96 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
97 with:
98 clean: false
99 - name: steps::setup_cargo_config
100 run: |
101 New-Item -ItemType Directory -Path "./../.cargo" -Force
102 Copy-Item -Path "./.cargo/ci-config.toml" -Destination "./../.cargo/config.toml"
103 shell: pwsh
104 - name: steps::setup_node
105 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
106 with:
107 node-version: '20'
108 - name: steps::clippy
109 run: ./script/clippy.ps1
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: steps::download_wasi_sdk
202 run: ./script/download-wasi-sdk
203 shell: bash -euxo pipefail {0}
204 - name: ./script/bundle-linux
205 run: ./script/bundle-linux
206 shell: bash -euxo pipefail {0}
207 - name: '@actions/upload-artifact zed-linux-aarch64.tar.gz'
208 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
209 with:
210 name: zed-linux-aarch64.tar.gz
211 path: target/release/zed-linux-aarch64.tar.gz
212 if-no-files-found: error
213 - name: '@actions/upload-artifact zed-remote-server-linux-aarch64.gz'
214 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
215 with:
216 name: zed-remote-server-linux-aarch64.gz
217 path: target/zed-remote-server-linux-aarch64.gz
218 if-no-files-found: error
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: steps::download_wasi_sdk
245 run: ./script/download-wasi-sdk
246 shell: bash -euxo pipefail {0}
247 - name: ./script/bundle-linux
248 run: ./script/bundle-linux
249 shell: bash -euxo pipefail {0}
250 - name: '@actions/upload-artifact zed-linux-x86_64.tar.gz'
251 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
252 with:
253 name: zed-linux-x86_64.tar.gz
254 path: target/release/zed-linux-x86_64.tar.gz
255 if-no-files-found: error
256 - name: '@actions/upload-artifact zed-remote-server-linux-x86_64.gz'
257 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
258 with:
259 name: zed-remote-server-linux-x86_64.gz
260 path: target/zed-remote-server-linux-x86_64.gz
261 if-no-files-found: error
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-aarch64.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 timeout-minutes: 60
309 bundle_mac_x86_64:
310 needs:
311 - run_tests_mac
312 - check_scripts
313 runs-on: self-mini-macos
314 env:
315 CARGO_INCREMENTAL: 0
316 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
317 ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
318 MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
319 MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
320 APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }}
321 APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }}
322 APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }}
323 steps:
324 - name: steps::checkout_repo
325 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
326 with:
327 clean: false
328 - name: steps::setup_node
329 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
330 with:
331 node-version: '20'
332 - name: steps::setup_sentry
333 uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
334 with:
335 token: ${{ secrets.SENTRY_AUTH_TOKEN }}
336 - name: steps::clear_target_dir_if_large
337 run: ./script/clear-target-dir-if-larger-than 300
338 shell: bash -euxo pipefail {0}
339 - name: run_bundling::bundle_mac::bundle_mac
340 run: ./script/bundle-mac x86_64-apple-darwin
341 shell: bash -euxo pipefail {0}
342 - name: '@actions/upload-artifact Zed-x86_64.dmg'
343 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
344 with:
345 name: Zed-x86_64.dmg
346 path: target/x86_64-apple-darwin/release/Zed-x86_64.dmg
347 if-no-files-found: error
348 - name: '@actions/upload-artifact zed-remote-server-macos-x86_64.gz'
349 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
350 with:
351 name: zed-remote-server-macos-x86_64.gz
352 path: target/zed-remote-server-macos-x86_64.gz
353 if-no-files-found: error
354 timeout-minutes: 60
355 bundle_windows_aarch64:
356 needs:
357 - run_tests_windows
358 - check_scripts
359 runs-on: self-32vcpu-windows-2022
360 env:
361 CARGO_INCREMENTAL: 0
362 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
363 ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
364 AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
365 AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
366 AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
367 ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }}
368 CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }}
369 ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }}
370 FILE_DIGEST: SHA256
371 TIMESTAMP_DIGEST: SHA256
372 TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com
373 steps:
374 - name: steps::checkout_repo
375 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
376 with:
377 clean: false
378 - name: steps::setup_sentry
379 uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
380 with:
381 token: ${{ secrets.SENTRY_AUTH_TOKEN }}
382 - name: run_bundling::bundle_windows::bundle_windows
383 run: script/bundle-windows.ps1 -Architecture aarch64
384 shell: pwsh
385 working-directory: ${{ env.ZED_WORKSPACE }}
386 - name: '@actions/upload-artifact Zed-aarch64.exe'
387 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
388 with:
389 name: Zed-aarch64.exe
390 path: target/Zed-aarch64.exe
391 if-no-files-found: error
392 timeout-minutes: 60
393 bundle_windows_x86_64:
394 needs:
395 - run_tests_windows
396 - check_scripts
397 runs-on: self-32vcpu-windows-2022
398 env:
399 CARGO_INCREMENTAL: 0
400 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
401 ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
402 AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }}
403 AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }}
404 AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }}
405 ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }}
406 CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }}
407 ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }}
408 FILE_DIGEST: SHA256
409 TIMESTAMP_DIGEST: SHA256
410 TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com
411 steps:
412 - name: steps::checkout_repo
413 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
414 with:
415 clean: false
416 - name: steps::setup_sentry
417 uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b
418 with:
419 token: ${{ secrets.SENTRY_AUTH_TOKEN }}
420 - name: run_bundling::bundle_windows::bundle_windows
421 run: script/bundle-windows.ps1 -Architecture x86_64
422 shell: pwsh
423 working-directory: ${{ env.ZED_WORKSPACE }}
424 - name: '@actions/upload-artifact Zed-x86_64.exe'
425 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
426 with:
427 name: Zed-x86_64.exe
428 path: target/Zed-x86_64.exe
429 if-no-files-found: error
430 timeout-minutes: 60
431 upload_release_assets:
432 needs:
433 - create_draft_release
434 - bundle_linux_aarch64
435 - bundle_linux_x86_64
436 - bundle_mac_aarch64
437 - bundle_mac_x86_64
438 - bundle_windows_aarch64
439 - bundle_windows_x86_64
440 runs-on: namespace-profile-4x8-ubuntu-2204
441 steps:
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: gh release upload "$GITHUB_REF_NAME" --repo=zed-industries/zed release-artifacts/*
465 run: gh release upload "$GITHUB_REF_NAME" --repo=zed-industries/zed release-artifacts/*
466 shell: bash -euxo pipefail {0}
467 env:
468 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
469 auto_release_preview:
470 needs:
471 - upload_release_assets
472 if: startsWith(github.ref, 'refs/tags/v') && endsWith(github.ref, '-pre') && !endsWith(github.ref, '.0-pre')
473 runs-on: namespace-profile-2x4-ubuntu-2404
474 steps:
475 - name: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false
476 run: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false
477 shell: bash -euxo pipefail {0}
478 env:
479 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
480 notify_on_failure:
481 needs:
482 - upload_release_assets
483 - auto_release_preview
484 if: failure()
485 runs-on: namespace-profile-2x4-ubuntu-2404
486 steps:
487 - name: release::notify_on_failure::notify_slack
488 run: |-
489 curl -X POST -H 'Content-type: application/json'\
490 --data '{"text":"${{ github.workflow }} failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK"
491 shell: bash -euxo pipefail {0}
492 env:
493 SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }}
494concurrency:
495 group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
496 cancel-in-progress: true