Skip to content

Commit 62a5448

Browse files
feat: add-workflows-CI/CD
1 parent 2a80147 commit 62a5448

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

.github/workflows/ci-cd.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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 # 部署的目录(静态文件所在路径)

0 commit comments

Comments
 (0)