File tree Expand file tree Collapse file tree 1 file changed +64
-0
lines changed
Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Original file line number Diff line number Diff line change 1+ name : 前端 CI/CD
2+
3+ on :
4+ push :
5+ branches : ['main'] # 可改为其他分支(如 dev)
6+
7+ # 任务列表
8+ jobs :
9+ # 第一个任务:构建和测试
10+ build-and-test :
11+ # 运行环境(GitHub 提供的虚拟机,可选 Ubuntu、Windows、macOS)
12+ runs-on : ubuntu-latest
13+
14+ # 任务步骤
15+ steps :
16+ # 步骤1:拉取代码到 Runner
17+ - name : 拉取代码
18+ uses : actions/checkout@v4 # 官方提供的“拉取代码”动作
19+
20+ # 步骤2:安装 Node.js(根据项目版本指定)
21+ - name : 安装 Node.js
22+ uses : actions/setup-node@v4
23+ with :
24+ node-version : 18.x # 匹配项目的 Node 版本
25+
26+ # 步骤3:安装依赖
27+ - name : 安装依赖
28+ run : npm install # 执行命令(可替换为 yarn/pnpm)
29+
30+ # 步骤4:运行测试(如果有测试脚本)
31+ - name : 运行测试
32+ run : npm test # 若无需测试,可删除此步骤
33+
34+ # 步骤5:构建项目
35+ - name : 构建项目
36+ run : npm run build # 生成静态文件(如 dist 目录)
37+
38+ # 步骤6:保存构建结果(供后续部署步骤使用)
39+ - name : 缓存构建产物
40+ uses : actions/upload-artifact@v4
41+ with :
42+ name : build-files # 缓存名称
43+ path : dist/ # 需缓存的目录(根据项目实际输出修改)
44+
45+ # 第二个任务:部署到 GitHub Pages(依赖 build-and-test 任务成功完成)
46+ deploy :
47+ needs : build-and-test # 依赖关系:先执行 build-and-test
48+ runs-on : ubuntu-latest
49+
50+ steps :
51+ # 步骤1:下载之前缓存的构建产物
52+ - name : 下载构建产物
53+ uses : actions/download-artifact@v4
54+ with :
55+ name : build-files # 对应上一步的缓存名称
56+ path : dist/ # 下载到当前 Runner 的 dist 目录
57+
58+ # 步骤2:部署到 GitHub Pages
59+ - name : 部署到 GitHub Pages
60+ uses : peaceiris/actions-gh-pages@v4 # 第三方部署动作(简化流程)
61+ with :
62+ # 部署权限:需要 GitHub 令牌(Token)
63+ github_token : ${{ secrets.GITHUB_TOKEN }} # 内置 secrets,无需手动配置
64+ publish_dir : ./dist # 部署的目录(静态文件所在路径)
You can’t perform that action at this time.
0 commit comments