1# Generated from xtask::workflows::after_release
2# Rebuild with `cargo xtask workflows`.
3name: after_release
4on:
5 release:
6 types:
7 - published
8 workflow_dispatch:
9 inputs:
10 tag_name:
11 description: tag_name
12 required: true
13 type: string
14 prerelease:
15 description: prerelease
16 required: true
17 type: boolean
18 body:
19 description: body
20 type: string
21 default: ''
22jobs:
23 rebuild_releases_page:
24 if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
25 runs-on: namespace-profile-2x4-ubuntu-2404
26 steps:
27 - name: after_release::rebuild_releases_page::refresh_cloud_releases
28 run: curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=${{ github.event.release.tag_name || inputs.tag_name }}
29 shell: bash -euxo pipefail {0}
30 - name: after_release::rebuild_releases_page::redeploy_zed_dev
31 run: npm exec --yes -- vercel@37 --token="$VERCEL_TOKEN" --scope zed-industries redeploy https://zed.dev
32 shell: bash -euxo pipefail {0}
33 env:
34 VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
35 post_to_discord:
36 needs:
37 - rebuild_releases_page
38 if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
39 runs-on: namespace-profile-2x4-ubuntu-2404
40 steps:
41 - id: get-release-url
42 name: after_release::post_to_discord::get_release_url
43 run: |
44 if [ "${{ github.event.release.prerelease || inputs.prerelease }}" == "true" ]; then
45 URL="https://zed.dev/releases/preview"
46 else
47 URL="https://zed.dev/releases/stable"
48 fi
49
50 echo "URL=$URL" >> "$GITHUB_OUTPUT"
51 shell: bash -euxo pipefail {0}
52 - id: get-content
53 name: after_release::post_to_discord::get_content
54 uses: 2428392/gh-truncate-string-action@b3ff790d21cf42af3ca7579146eedb93c8fb0757
55 with:
56 stringToTruncate: |
57 📣 Zed [${{ github.event.release.tag_name || inputs.tag_name }}](<${{ steps.get-release-url.outputs.URL }}>) was just released!
58
59 ${{ github.event.release.body || inputs.body }}
60 maxLength: 2000
61 truncationSymbol: '...'
62 - name: after_release::post_to_discord::discord_webhook_action
63 uses: tsickert/discord-webhook@c840d45a03a323fbc3f7507ac7769dbd91bfb164
64 with:
65 webhook-url: ${{ secrets.DISCORD_WEBHOOK_RELEASE_NOTES }}
66 content: ${{ steps.get-content.outputs.string }}
67 publish_winget:
68 runs-on: self-32vcpu-windows-2022
69 steps:
70 - id: set-package-name
71 name: after_release::publish_winget::set_package_name
72 run: |
73 if ("${{ github.event.release.prerelease || inputs.prerelease }}" -eq "true") {
74 $PACKAGE_NAME = "ZedIndustries.Zed.Preview"
75 } else {
76 $PACKAGE_NAME = "ZedIndustries.Zed"
77 }
78
79 echo "PACKAGE_NAME=$PACKAGE_NAME" >> $env:GITHUB_OUTPUT
80 shell: pwsh
81 - name: after_release::publish_winget::winget_releaser
82 uses: vedantmgoyal9/winget-releaser@19e706d4c9121098010096f9c495a70a7518b30f
83 with:
84 identifier: ${{ steps.set-package-name.outputs.PACKAGE_NAME }}
85 release-tag: ${{ github.event.release.tag_name || inputs.tag_name }}
86 max-versions-to-keep: 5
87 token: ${{ secrets.WINGET_TOKEN }}
88 create_sentry_release:
89 if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
90 runs-on: namespace-profile-2x4-ubuntu-2404
91 steps:
92 - name: steps::checkout_repo
93 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
94 with:
95 clean: false
96 - name: release::create_sentry_release
97 uses: getsentry/action-release@526942b68292201ac6bbb99b9a0747d4abee354c
98 with:
99 environment: production
100 env:
101 SENTRY_ORG: zed-dev
102 SENTRY_PROJECT: zed
103 SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
104 notify_on_failure:
105 needs:
106 - rebuild_releases_page
107 - post_to_discord
108 - publish_winget
109 - create_sentry_release
110 if: failure()
111 runs-on: namespace-profile-2x4-ubuntu-2404
112 steps:
113 - name: release::notify_on_failure::notify_slack
114 run: |-
115 curl -X POST -H 'Content-type: application/json'\
116 --data '{"text":"${{ github.workflow }} failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK"
117 shell: bash -euxo pipefail {0}
118 env:
119 SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }}