name: CI
# 触发条件:推送到master分支或创建针对master分支的PR
on:
push:
branches: [master, main]
pull_request:
branches: [master, main]
jobs:
# 代码质量检查任务
quality:
name: 代码质量检查
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 设置Node.js环境
uses: actions/setup-node@v4
with:
node-version: "18"
cache: "npm"
- name: 安装依赖
run: npm ci
- name: 运行ESLint检查
run: npm run lint
- name: 运行TypeScript类型检查
run: npx tsc --noEmit
- name: 检查Markdown和配置文件格式
run: npx prettier --check "**/*.{md,json,yml,yaml}"
# 构建任务
build:
name: 构建项目
runs-on: ubuntu-latest
needs: quality
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 设置Node.js环境
uses: actions/setup-node@v4
with:
node-version: "18"
cache: "npm"
- name: 安装依赖
run: npm ci
- name: 构建项目
run: npm run build
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
retention-days: 7