GitHub Pages 部署
文档站通过 GitHub Actions 自动构建并部署到 GitHub Pages,每次推送 main 即更新线上。
全流程
flowchart LR P["push 到 main
(website/** 变更)"] --> CI[".github/workflows/
deploy-website.yml"] CI --> CO["actions/checkout"] CO --> NP["setup-node@v4
Node 22"] NP --> NI["npm ci
(用 lockfile)"] NI --> B["npm run build
(vitepress build)"] B --> UP["actions/upload-pages-artifact
打包 dist/"] UP --> D["actions/deploy-pages"] D --> PAGES["GitHub Pages 上线
cyberspacesec.github.io/crt.sh-skills/"]
(website/** 变更)"] --> CI[".github/workflows/
deploy-website.yml"] CI --> CO["actions/checkout"] CO --> NP["setup-node@v4
Node 22"] NP --> NI["npm ci
(用 lockfile)"] NI --> B["npm run build
(vitepress build)"] B --> UP["actions/upload-pages-artifact
打包 dist/"] UP --> D["actions/deploy-pages"] D --> PAGES["GitHub Pages 上线
cyberspacesec.github.io/crt.sh-skills/"]
前置一次性配置
必须做这一步,否则 workflow 报 "Get Pages site failed"
仓库 Settings → Pages → Source 选 GitHub Actions(不是 branch)。之后由 workflow deploy-website.yml 接管部署。
也可用 CLI 一步开通:
$ gh api --method POST repos/cyberspacesec/crt.sh-skills/pages -f build_type=workflow
✓ Pages site created with build_type=workflow
✓ Pages site created with build_type=workflow
workflow 关键点
| 环节 | 配置 |
|---|---|
| 触发 | push 到 main(路径 website/**),或手动 workflow_dispatch |
| 运行时 | Node 22 |
| 装依赖 | npm ci(严格按 lockfile) |
| 构建 | npm run build |
| 部署 | actions/deploy-pages |
| 权限 | pages: write + id-token: write |
| 并发 | cancel-in-progress 避免重复部署 |
自定义域名(可选)
本地验证部署一致性
bash
cd website && npm run build && npm run preview本地预览所见即线上所得——构建不出错,线上就不会出错。
下一页