1
+ # 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程
2
+ #
3
+ name : Deploy VitePress site to Pages
4
+
5
+ on :
6
+ # 在针对 `main` 分支的推送上运行。如果你
7
+ # 使用 `master` 分支作为默认分支,请将其更改为 `master`
8
+ push :
9
+ branches : [master]
10
+
11
+ # 允许你从 Actions 选项卡手动运行此工作流程
12
+ workflow_dispatch :
13
+
14
+ # 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages
15
+ permissions :
16
+ contents : read
17
+ pages : write
18
+ id-token : write
19
+
20
+ # 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列
21
+ # 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成
22
+ concurrency :
23
+ group : pages
24
+ cancel-in-progress : false
25
+
26
+ jobs :
27
+ # 构建工作
28
+ build :
29
+ runs-on : ubuntu-latest
30
+ steps :
31
+ - name : Checkout
32
+ uses : actions/checkout@v4
33
+ with :
34
+ fetch-depth : 0 # 如果未启用 lastUpdated,则不需要
35
+ # - uses: pnpm/action-setup@v3 # 如果使用 pnpm,请取消此区域注释
36
+ # with:
37
+ # version: 9
38
+ # - uses: oven-sh/setup-bun@v1 # 如果使用 Bun,请取消注释
39
+
40
+ - name : Install pnpm
41
+ uses : pnpm/action-setup@v4
42
+
43
+ - name : Get pnpm store directory
44
+ id : pnpm-cache
45
+ run : |
46
+ echo "pnpm_cache_dir=$(pnpm store path)" >> "$GITHUB_OUTPUT"
47
+
48
+ - name : Setup pnpm cache
49
+ uses : actions/cache@v4
50
+ with :
51
+ path : ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
52
+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
53
+ restore-keys : |
54
+ ${{ runner.os }}-pnpm-store-
55
+ - name : Setup Node
56
+ uses : actions/setup-node@v4
57
+ with :
58
+ node-version : 18.x
59
+ cache : pnpm # 或 pnpm / yarn
60
+ - name : Setup Pages
61
+ uses : actions/configure-pages@v4
62
+ - name : Install dependencies
63
+ run : pnpm install # 或 pnpm install / yarn install / bun install
64
+ - name : Build with VitePress
65
+ run : pnpm docs:build # 或 pnpm docs:build / yarn docs:build / bun run docs:build
66
+ - name : Upload artifact
67
+ uses : actions/upload-pages-artifact@v3
68
+ with :
69
+ path : docs/.vitepress/dist
70
+
71
+ # 部署工作
72
+ deploy :
73
+ environment :
74
+ name : github-pages
75
+ url : ${{ steps.deployment.outputs.page_url }}
76
+ needs : build
77
+ runs-on : ubuntu-latest
78
+ name : Deploy
79
+ steps :
80
+ - name : Deploy to GitHub Pages
81
+ id : deployment
82
+ uses : actions/deploy-pages@v4
0 commit comments