Release and documentation publishing
GitLab is the source of truth. Normal GitHub mirroring sends release tags only; GitHub main is fast-forwarded to each successfully published tag.
Release flow
- Change the matching versions in
package.jsonandserver.jsonon the GitLab default branch. - GitLab installs immutable dependencies, type-checks, tests, builds the CLI/MCP package and docs, and verifies the package.
- GitLab creates the protected
v{version}tag when needed. - GitLab mirrors only that tag to
zyno-io/zynohosting-clion GitHub. - GitHub verifies and publishes npm and MCP Registry metadata.
- GitHub fast-forwards
mainto the released tag. - The separate Pages workflow builds and deploys this VitePress site from the same tag.
No workflow runs on a push to GitHub main.
Documentation commands
bash
yarn docs:dev
yarn docs:build
yarn docs:previewThe production output is docs/.vitepress/dist and the public base path is /zynohosting-cli/.
One-time GitHub Pages setup
In the public GitHub repository:
- open Settings → Pages;
- select GitHub Actions under Build and deployment → Source;
- allow the
github-pagesenvironment to deploy from release tags matchingv*; - keep Actions permissions available for
pages: writeandid-token: write.
The Deploy documentation workflow also supports manual dispatch for recovery or an initial deployment.
Why deploy from tags
The repository intentionally mirrors only immutable release tags. Building docs from the tag ensures:
- command documentation matches the published npm package;
- the site cannot get ahead of released CLI behavior;
- GitHub
mainremains a passive fast-forwarded mirror; - a failed package release cannot silently publish unreleased docs.
For full maintainer setup—including tokens, trusted publishing, and MCP Registry publication—see RELEASING.md in the repository root.