diff --git a/.github/workflows/after_release.yml b/.github/workflows/after_release.yml index 148497989a94c77ebbeb3427f591ea5bfa7f31e2..cf77b429353e59697858434c3904a68b91ecc63a 100644 --- a/.github/workflows/after_release.yml +++ b/.github/workflows/after_release.yml @@ -6,7 +6,21 @@ 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::refresh_cloud_releases + run: curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=${{ github.event.release.tag_name }} + shell: bash -euxo pipefail {0} + - name: after_release::rebuild_releases_page::redeploy_zed_dev + run: npm exec --yes -- vercel@37 --token="$VERCEL_TOKEN" --scope zed-industries redeploy https://zed.dev + shell: bash -euxo pipefail {0} + env: + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} post_to_discord: + needs: + - rebuild_releases_page if: github.repository_owner == 'zed-industries' runs-on: namespace-profile-2x4-ubuntu-2404 steps: diff --git a/tooling/xtask/src/tasks/workflows/after_release.rs b/tooling/xtask/src/tasks/workflows/after_release.rs index a2591e167b7c1c52f683dfbcf00428b0db74c2ac..0d45210a4b24df3d50f775cd4bd07f0b55a8a270 100644 --- a/tooling/xtask/src/tasks/workflows/after_release.rs +++ b/tooling/xtask/src/tasks/workflows/after_release.rs @@ -7,29 +7,39 @@ use crate::tasks::workflows::{ }; pub fn after_release() -> Workflow { - // let refresh_zed_dev = rebuild_releases_page(); - let post_to_discord = post_to_discord(&[]); + let refresh_zed_dev = rebuild_releases_page(); + let post_to_discord = post_to_discord(&[&refresh_zed_dev]); 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 { + fn refresh_cloud_releases() -> Step { + named::bash( + "curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=${{ github.event.release.tag_name }}", + ) + } + + fn redeploy_zed_dev() -> Step { + named::bash("npm exec --yes -- vercel@37 --token=\"$VERCEL_TOKEN\" --scope zed-industries redeploy https://zed.dev") + .add_env(("VERCEL_TOKEN", vars::VERCEL_TOKEN)) + } + named::job( Job::default() .runs_on(runners::LINUX_SMALL) .cond(Expression::new( "github.repository_owner == 'zed-industries'", )) - .add_step(named::bash( - "curl https://zed.dev/api/revalidate-releases -H \"Authorization: Bearer ${RELEASE_NOTES_API_TOKEN}\"", - ).add_env(("RELEASE_NOTES_API_TOKEN", vars::RELEASE_NOTES_API_TOKEN))), + .add_step(refresh_cloud_releases()) + .add_step(redeploy_zed_dev()), ) } diff --git a/tooling/xtask/src/tasks/workflows/vars.rs b/tooling/xtask/src/tasks/workflows/vars.rs index b3eb86554a21e6d921d9d2eb23a5467a7506906c..51f6383b1eddafd2a723e31ea23247b90b3a955c 100644 --- a/tooling/xtask/src/tasks/workflows/vars.rs +++ b/tooling/xtask/src/tasks/workflows/vars.rs @@ -38,7 +38,7 @@ secret!(ZED_ZIPPY_APP_ID); secret!(ZED_ZIPPY_APP_PRIVATE_KEY); secret!(DISCORD_WEBHOOK_RELEASE_NOTES); secret!(WINGET_TOKEN); -secret!(RELEASE_NOTES_API_TOKEN); +secret!(VERCEL_TOKEN); // todo(ci) make these secrets too... var!(AZURE_SIGNING_ACCOUNT_NAME);