1+ # 构建 VitePress 站点并将其部署到 GitHub Pages 的工作流程
2+ #
3+ name : Deploy VitePress Docs to Pages
4+
5+ on :
6+ # 在针对 `develop` 分支的推送上运行
7+ push :
8+ branches : [develop]
9+ # 只有当doc目录下的文件发生变化时才触发
10+ paths :
11+ - ' doc/**'
12+
13+ # 允许从 Actions 选项卡手动运行此工作流程
14+ workflow_dispatch :
15+
16+ # 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages
17+ permissions :
18+ contents : read
19+ pages : write
20+ id-token : write
21+
22+ # 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列
23+ # 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成
24+ concurrency :
25+ group : pages
26+ cancel-in-progress : false
27+
28+ jobs :
29+ # 构建工作
30+ build :
31+ runs-on : ubuntu-latest
32+ defaults :
33+ run :
34+ working-directory : ./doc
35+ steps :
36+ - name : Checkout
37+ uses : actions/checkout@v4
38+ with :
39+ fetch-depth : 0 # 如果未启用 lastUpdated,则不需要
40+
41+ - name : Setup Node
42+ uses : actions/setup-node@v4
43+ with :
44+ node-version : 20
45+ cache : npm
46+ cache-dependency-path : ./doc/package-lock.json
47+
48+ - name : Setup Pages
49+ uses : actions/configure-pages@v4
50+
51+ - name : Install dependencies
52+ run : npm ci
53+
54+ - name : Temporarily modify base path for GitHub Pages
55+ run : |
56+ # 创建一个临时的config文件,将base从'/doc/'改为'/nexent/'用于GitHub Pages
57+ sed 's|base: '"'"'/doc/'"'"'|base: '"'"'/nexent/'"'"'|g' docs/.vitepress/config.mts > docs/.vitepress/config.github.mts
58+ mv docs/.vitepress/config.mts docs/.vitepress/config.original.mts
59+ mv docs/.vitepress/config.github.mts docs/.vitepress/config.mts
60+
61+ - name : Build with VitePress
62+ run : npm run docs:build
63+
64+ - name : Restore original config
65+ run : |
66+ mv docs/.vitepress/config.original.mts docs/.vitepress/config.mts
67+
68+ - name : Upload artifact
69+ uses : actions/upload-pages-artifact@v3
70+ with :
71+ path : doc/docs/.vitepress/dist
72+
73+ # 部署工作
74+ deploy :
75+ environment :
76+ name : github-pages
77+ url : ${{ steps.deployment.outputs.page_url }}
78+ needs : build
79+ runs-on : ubuntu-latest
80+ name : Deploy
81+ steps :
82+ - name : Deploy to GitHub Pages
83+ id : deployment
84+ uses : actions/deploy-pages@v4
0 commit comments