fix bugs

Ben Kunkle created

Change summary

.github/workflows/after_release.yml                |  6 ++--
.github/workflows/deploy_docs.yml                  | 15 ++++++----
.github/workflows/run_tests.yml                    |  7 ++--
tooling/xtask/src/tasks/workflows/after_release.rs |  7 ++--
tooling/xtask/src/tasks/workflows/deploy_docs.rs   | 22 ++++++++++-----
5 files changed, 35 insertions(+), 22 deletions(-)

Detailed changes

.github/workflows/after_release.yml 🔗

@@ -28,7 +28,7 @@ jobs:
     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=$TAG_NAME
+      run: curl -fX POST "https://cloud.zed.dev/releases/refresh?expect_tag=$TAG_NAME"
     - name: steps::checkout_repo
       uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd
       with:
@@ -47,8 +47,8 @@ jobs:
       CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
       CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
     with:
-      channel: ${{ env.IS_PRERELEASE == 'true' && 'preview' || 'stable' }}
-      checkout_ref: ${{ env.TAG_NAME }}
+      channel: ${{ (github.event.release.prerelease || inputs.prerelease) && 'preview' || 'stable' }}
+      checkout_ref: ${{ github.event.release.tag_name || inputs.tag_name }}
   post_to_discord:
     needs:
     - rebuild_releases_page

.github/workflows/deploy_docs.yml 🔗

@@ -39,8 +39,6 @@ jobs:
     runs-on: namespace-profile-16x32-ubuntu-2204
     env:
       DOCS_AMPLITUDE_API_KEY: ${{ secrets.DOCS_AMPLITUDE_API_KEY }}
-      MDBOOK_BOOK__SITE_URL: ${{ steps.resolve-channel.outputs.site_url }}
-      DOCS_CHANNEL: ${{ steps.resolve-channel.outputs.channel }}
     steps:
     - id: resolve-channel
       name: deploy_docs::resolve_channel_step
@@ -73,9 +71,11 @@ jobs:
                 ;;
         esac
 
-        echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT"
-        echo "site_url=$SITE_URL" >> "$GITHUB_OUTPUT"
-        echo "project_name=$PROJECT_NAME" >> "$GITHUB_OUTPUT"
+        {
+            echo "channel=$CHANNEL"
+            echo "site_url=$SITE_URL"
+            echo "project_name=$PROJECT_NAME"
+        } >> "$GITHUB_OUTPUT"
       env:
         CHANNEL: inputs.channel
     - name: steps::checkout_repo
@@ -108,10 +108,13 @@ jobs:
       uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08
       with:
         mdbook-version: 0.4.37
-    - name: deploy_docs::build_docs_book
+    - name: deploy_docs::build_docs_book::<alloc[d66a2b52346aa9d5]::string::String, alloc[d66a2b52346aa9d5]::string::String>
       run: |
         mkdir -p target/deploy
         mdbook build ./docs --dest-dir=../target/deploy/docs/
+      env:
+        DOCS_CHANNEL: ${{ steps.resolve-channel.outputs.channel }}
+        MDBOOK_BOOK__SITE_URL: ${{ steps.resolve-channel.outputs.site_url }}
     - name: deploy_docs::lychee_link_check
       uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332
       with:

.github/workflows/run_tests.yml 🔗

@@ -640,8 +640,6 @@ jobs:
     runs-on: namespace-profile-16x32-ubuntu-2204
     env:
       DOCS_AMPLITUDE_API_KEY: ${{ secrets.DOCS_AMPLITUDE_API_KEY }}
-      MDBOOK_BOOK__SITE_URL: /docs/
-      DOCS_CHANNEL: stable
     steps:
     - name: steps::checkout_repo
       uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd
@@ -672,10 +670,13 @@ jobs:
       uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08
       with:
         mdbook-version: 0.4.37
-    - name: deploy_docs::build_docs_book
+    - name: deploy_docs::build_docs_book::<alloc[d66a2b52346aa9d5]::string::String, alloc[d66a2b52346aa9d5]::string::String>
       run: |
         mkdir -p target/deploy
         mdbook build ./docs --dest-dir=../target/deploy/docs/
+      env:
+        DOCS_CHANNEL: stable
+        MDBOOK_BOOK__SITE_URL: /docs/
     - name: deploy_docs::lychee_link_check
       uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332
       with:

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

@@ -11,7 +11,8 @@ const TAG_NAME_ENV: &str = "${{ github.event.release.tag_name || inputs.tag_name
 const IS_PRERELEASE_ENV: &str = "${{ github.event.release.prerelease || inputs.prerelease }}";
 const TAG_NAME: &str = "${{ env.TAG_NAME }}";
 const RELEASE_BODY: &str = "${{ github.event.release.body || inputs.body }}";
-const DOCS_CHANNEL: &str = "${{ env.IS_PRERELEASE == 'true' && 'preview' || 'stable' }}";
+const DOCS_CHANNEL: &str =
+    "${{ (github.event.release.prerelease || inputs.prerelease) && 'preview' || 'stable' }}";
 
 pub fn after_release() -> Workflow {
     let tag_name = WorkflowInput::string("tag_name", None);
@@ -70,7 +71,7 @@ fn deploy_docs() -> NamedJob<UsesJob> {
         .with(
             Input::default()
                 .add("channel", DOCS_CHANNEL)
-                .add("checkout_ref", TAG_NAME),
+                .add("checkout_ref", TAG_NAME_ENV),
         )
         .secrets(indexmap::IndexMap::from([
             (
@@ -95,7 +96,7 @@ fn deploy_docs() -> NamedJob<UsesJob> {
 
 fn rebuild_releases_page() -> NamedJob {
     fn refresh_cloud_releases() -> Step<Run> {
-        named::bash("curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=$TAG_NAME")
+        named::bash("curl -fX POST \"https://cloud.zed.dev/releases/refresh?expect_tag=$TAG_NAME\"")
     }
 
     fn redeploy_zed_dev() -> Step<Run> {

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

@@ -63,11 +63,16 @@ pub(crate) fn install_mdbook() -> Step<Use> {
     .with(("mdbook-version", "0.4.37"))
 }
 
-pub(crate) fn build_docs_book() -> Step<Run> {
+pub(crate) fn build_docs_book(
+    docs_channel: impl Into<String>,
+    site_url: impl Into<String>,
+) -> Step<Run> {
     named::bash(indoc::formatdoc! {r#"
         mkdir -p {BUILD_OUTPUT_DIR}
         mdbook build ./docs --dest-dir=../{BUILD_OUTPUT_DIR}/docs/
     "#})
+    .add_env(("DOCS_CHANNEL", docs_channel.into()))
+    .add_env(("MDBOOK_BOOK__SITE_URL", site_url.into()))
 }
 
 fn docs_build_steps(
@@ -76,14 +81,15 @@ fn docs_build_steps(
     docs_channel: impl Into<String>,
     site_url: impl Into<String>,
 ) -> Job {
+    let docs_channel = docs_channel.into();
+    let site_url = site_url.into();
+
     job.add_env(("DOCS_AMPLITUDE_API_KEY", vars::DOCS_AMPLITUDE_API_KEY))
         .add_step(
             steps::checkout_repo().when_some(checkout_ref, |step, checkout_ref| {
                 step.with_ref(checkout_ref)
             }),
         )
-        .add_env(("MDBOOK_BOOK__SITE_URL", site_url.into()))
-        .add_env(("DOCS_CHANNEL", docs_channel.into()))
         .runs_on(runners::LINUX_XL)
         .add_step(steps::setup_cargo_config(runners::Platform::Linux))
         .add_step(steps::cache_rust_dependencies_namespace())
@@ -91,7 +97,7 @@ fn docs_build_steps(
         .add_step(steps::script("./script/generate-action-metadata"))
         .add_step(lychee_link_check("./docs/src/**/*"))
         .add_step(install_mdbook())
-        .add_step(build_docs_book())
+        .add_step(build_docs_book(docs_channel, site_url))
         .add_step(lychee_link_check(&format!("{BUILD_OUTPUT_DIR}/docs")))
 }
 
@@ -200,9 +206,11 @@ fn resolve_channel_step(
                     ;;
             esac
 
-            echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT"
-            echo "site_url=$SITE_URL" >> "$GITHUB_OUTPUT"
-            echo "project_name=$PROJECT_NAME" >> "$GITHUB_OUTPUT"
+            {{
+                echo "channel=$CHANNEL"
+                echo "site_url=$SITE_URL"
+                echo "project_name=$PROJECT_NAME"
+            }} >> "$GITHUB_OUTPUT"
         "#},
         nightly_site_url = DocsChannel::Nightly.site_url(),
         preview_site_url = DocsChannel::Preview.site_url(),