Skip to content

feat(website): deploy docs to Zephyr Cloud - #521

Open
Nsttt wants to merge 4 commits into
rstackjs:mainfrom
Nsttt:zephyr
Open

Nsttt wants to merge 4 commits into
rstackjs:mainfrom
Nsttt:zephyr

Conversation

@Nsttt

@Nsttt Nsttt commented Sep 25, 2026

Copy link
Copy Markdown

Motivation

Deploy the Rstack CLI documentation through Zephyr, following the Rsbuild website setup, with main builds and stable-release production promotion.

Changes

Add the Zephyr Rspress plugin and site org config. Deploy main to Zephyr with the CI token; after a successful latest npm release, deploy the exact released source commit to production.

Validation: pnpm build, pnpm --filter rstack build:native, and pnpm check passed. The website compiled, but local Zephyr Build ID creation lacked access to the new site identity. The full test run had one docs-restart timeout under parallel load; its focused rerun passed. Pre-commit autoreview was clean. CI requires repository secret ZE_CI_TOKEN and Zephyr access for rstack-website.rstack-cli.rstack.

Nsttt and others added 4 commits September 25, 2026 11:09
Co-authored-by: Néstor <Nsttt@users.noreply.github.com>
Co-authored-by: Néstor <Nsttt@users.noreply.github.com>
Co-authored-by: Néstor <Nsttt@users.noreply.github.com>

@chenjiahan chenjiahan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like we don't need to trigger website deployment from the release workflow. The standalone Deploy Website workflow should be sufficient. Could we remove the website deployment job from release.yml and keep deployment in deploy-website.yml?

@chenjiahan chenjiahan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two additional issues with the Zephyr integration:

Comment thread website/rstack.config.ts
cleanUrls: true,
},
plugins: [
withZephyr({ target: 'web' }),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we enable this plugin only when explicitly deploying, using an environment flag set by the deployment workflow? In zephyr-rspress-plugin@1.4.0, the SSG plugin initializes the Zephyr engine even in development mode, so pnpm doc attempts authentication and pnpm doc:build attempts deployment. Ordinary local documentation development and builds should work without Zephyr credentials or deployment side effects.

Comment thread website/rstack.config.ts
cleanUrls: true,
},
plugins: [
withZephyr({ target: 'web' }),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we ensure sitemap.xml is generated before Zephyr collects the files to upload? Both the Zephyr SSG plugin and pluginSitemap use afterBuild, and Rspress runs these hooks in parallel. In a minimal reproduction using the actual plugins and file traversal, with authentication and upload mocked, the upload file list omitted sitemap.xml in all 20 runs even though it existed on disk afterward. We need to sequence sitemap generation before file collection; reordering the plugins alone will not resolve the race.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants