diff --git a/.github/workflows/after_release.yml b/.github/workflows/after_release.yml index 4ecb8d9328fbda6c6bb63d813f2a1847a8c4feab..a6f35fd00db9cc5717c2de9259ed6c5d9cbe074c 100644 --- a/.github/workflows/after_release.yml +++ b/.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 diff --git a/.github/workflows/deploy_docs.yml b/.github/workflows/deploy_docs.yml index a61237127391a812adee81c7218724d483a993c2..8bcd36ab3056f90af1f8ceb802cc3c28e565296b 100644 --- a/.github/workflows/deploy_docs.yml +++ b/.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:: 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: diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index 0a4f0bf45aae77270d4f316520bacf4d2964cd03..6a6a089218a2be46005e03dfa9d2aec8eff03659 100644 --- a/.github/workflows/run_tests.yml +++ b/.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:: 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: diff --git a/tooling/xtask/src/tasks/workflows/after_release.rs b/tooling/xtask/src/tasks/workflows/after_release.rs index 7c9ccdb7b99e54436ca9fc9c6e5d156aa74318b7..6444a3c38846711ae4ae0632ea3a7d2f6a62674d 100644 --- a/tooling/xtask/src/tasks/workflows/after_release.rs +++ b/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 { .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 { fn rebuild_releases_page() -> NamedJob { fn refresh_cloud_releases() -> Step { - 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 { diff --git a/tooling/xtask/src/tasks/workflows/deploy_docs.rs b/tooling/xtask/src/tasks/workflows/deploy_docs.rs index 2aa6de87654fe7919c8c1b3cdb5d67e2c0ab3e35..1cabe4ced89289344306ec8b92640df1b5a0b611 100644 --- a/tooling/xtask/src/tasks/workflows/deploy_docs.rs +++ b/tooling/xtask/src/tasks/workflows/deploy_docs.rs @@ -63,11 +63,16 @@ pub(crate) fn install_mdbook() -> Step { .with(("mdbook-version", "0.4.37")) } -pub(crate) fn build_docs_book() -> Step { +pub(crate) fn build_docs_book( + docs_channel: impl Into, + site_url: impl Into, +) -> Step { 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, site_url: impl Into, ) -> 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(),