Create sentry releases in after_release (#42169)

Conrad Irwin created

This had been moved to auto-release preview, and was not running for
stable.

Closes #ISSUE

Release Notes:

- N/A

Change summary

.github/workflows/after_release.yml                | 27 +++++++++------
.github/workflows/release.yml                      |  8 ----
tooling/xtask/src/tasks/workflows/after_release.rs | 23 ++++++++++--
tooling/xtask/src/tasks/workflows/release.rs       |  1 
4 files changed, 34 insertions(+), 25 deletions(-)

Detailed changes

.github/workflows/after_release.yml 🔗

@@ -6,18 +6,7 @@ on:
     types:
     - published
 jobs:
-  rebuild_releases_page:
-    if: github.repository_owner == 'zed-industries'
-    runs-on: namespace-profile-2x4-ubuntu-2404
-    steps:
-    - name: after_release::rebuild_releases_page
-      run: 'curl https://zed.dev/api/revalidate-releases -H "Authorization: Bearer ${RELEASE_NOTES_API_TOKEN}"'
-      shell: bash -euxo pipefail {0}
-      env:
-        RELEASE_NOTES_API_TOKEN: ${{ secrets.RELEASE_NOTES_API_TOKEN }}
   post_to_discord:
-    needs:
-    - rebuild_releases_page
     if: github.repository_owner == 'zed-industries'
     runs-on: namespace-profile-2x4-ubuntu-2404
     steps:
@@ -67,3 +56,19 @@ jobs:
         identifier: ${{ steps.set-package-name.outputs.PACKAGE_NAME }}
         max-versions-to-keep: 5
         token: ${{ secrets.WINGET_TOKEN }}
+  create_sentry_release:
+    if: github.repository_owner == 'zed-industries'
+    runs-on: namespace-profile-2x4-ubuntu-2404
+    steps:
+    - name: steps::checkout_repo
+      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+      with:
+        clean: false
+    - name: release::create_sentry_release
+      uses: getsentry/action-release@526942b68292201ac6bbb99b9a0747d4abee354c
+      with:
+        environment: production
+      env:
+        SENTRY_ORG: zed-dev
+        SENTRY_PROJECT: zed
+        SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}

.github/workflows/release.yml 🔗

@@ -478,14 +478,6 @@ jobs:
       shell: bash -euxo pipefail {0}
       env:
         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-    - name: release::create_sentry_release
-      uses: getsentry/action-release@526942b68292201ac6bbb99b9a0747d4abee354c
-      with:
-        environment: production
-      env:
-        SENTRY_ORG: zed-dev
-        SENTRY_PROJECT: zed
-        SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }}
   cancel-in-progress: true

tooling/xtask/src/tasks/workflows/after_release.rs 🔗

@@ -1,23 +1,25 @@
 use gh_workflow::*;
 
 use crate::tasks::workflows::{
-    runners,
-    steps::{NamedJob, dependant_job, named},
+    release, runners,
+    steps::{NamedJob, checkout_repo, dependant_job, named},
     vars::{self, StepOutput},
 };
 
 pub fn after_release() -> Workflow {
-    let refresh_zed_dev = rebuild_releases_page();
-    let post_to_discord = post_to_discord(&[&refresh_zed_dev]);
+    // let refresh_zed_dev = rebuild_releases_page();
+    let post_to_discord = post_to_discord(&[]);
     let publish_winget = publish_winget();
+    let create_sentry_release = create_sentry_release();
 
     named::workflow()
         .on(Event::default().release(Release::default().types(vec![ReleaseType::Published])))
-        .add_job(refresh_zed_dev.name, refresh_zed_dev.job)
         .add_job(post_to_discord.name, post_to_discord.job)
         .add_job(publish_winget.name, publish_winget.job)
+        .add_job(create_sentry_release.name, create_sentry_release.job)
 }
 
+#[allow(unused)]
 fn rebuild_releases_page() -> NamedJob {
     named::job(
         Job::default()
@@ -121,3 +123,14 @@ fn publish_winget() -> NamedJob {
             .add_step(winget_releaser(&package_name)),
     )
 }
+
+fn create_sentry_release() -> NamedJob {
+    let job = Job::default()
+        .runs_on(runners::LINUX_SMALL)
+        .cond(Expression::new(
+            "github.repository_owner == 'zed-industries'",
+        ))
+        .add_step(checkout_repo())
+        .add_step(release::create_sentry_release());
+    named::job(job)
+}