96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: CI
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches: [dev, release, master]
 | |
|   pull_request:
 | |
|     branches: [dev, release, master]
 | |
| 
 | |
| env:
 | |
|   ACTIONS_RUNNER_DEBUG: true
 | |
|   ACTIONS_STEP_DEBUG: true
 | |
| 
 | |
| jobs:
 | |
|   test:
 | |
|     runs-on: ubuntu-latest
 | |
|     name: 测试
 | |
| 
 | |
|     steps:
 | |
|       - name: 准备 | 签出代码
 | |
|         uses: actions/checkout@v4
 | |
| 
 | |
|       - name: 准备 | 配置开发环境
 | |
|         uses: actions/setup-node@v4
 | |
|         with:
 | |
|           node-version: "20"
 | |
| 
 | |
|       - name: 准备 | 获取包管理器版本
 | |
|         run: |
 | |
|           PNPM_VERSION=$(grep -o '"packageManager": "[^"]*"' package.json | cut -d'@' -f2 | tr -d '"')
 | |
|           echo "PNPM_VERSION=$PNPM_VERSION" >> $GITHUB_ENV
 | |
|           echo "✅ 包管理器版本为 pnpm@$PNPM_VERSION"
 | |
| 
 | |
|       - name: 准备 | 配置全局缓存
 | |
|         uses: actions/cache@v3
 | |
|         with:
 | |
|           path: ~/.npm
 | |
|           key: ${{ runner.os }}-npm-pnpm-${{ env.PNPM_VERSION }}
 | |
|           restore-keys: |
 | |
|             ${{ runner.os }}-npm-pnpm-
 | |
| 
 | |
|       - name: 准备 | 安装包管理器
 | |
|         run: |
 | |
|           npm install -g pnpm@${{ env.PNPM_VERSION }}
 | |
|           pnpm --version
 | |
|           echo "✅ 包管理器安装成功"
 | |
| 
 | |
|       - name: 准备 | 获取依赖哈希
 | |
|         id: files-hash
 | |
|         uses: actions/files-hash@v0.1
 | |
|         with:
 | |
|           files: "**/pnpm-lock.yaml"
 | |
| 
 | |
|       - name: 准备 | 获取依赖目录
 | |
|         id: dependencies
 | |
|         run: |
 | |
|           DEPEND=$(pnpm store path)
 | |
|           echo "DEPEND=$DEPEND" >> $GITEA_OUTPUT
 | |
|           echo "✅ 依赖目录: $DEPEND"
 | |
| 
 | |
|       - name: 准备 | 配置依赖缓存
 | |
|         uses: actions/cache@v3
 | |
|         with:
 | |
|           path: ${{ steps.dependencies.outputs.DEPEND }}
 | |
|           key: ${{ runner.os }}-pnpm-store-${{ steps.files-hash.outputs.hash }}
 | |
|           restore-keys: |
 | |
|             ${{ runner.os }}-pnpm-store-
 | |
| 
 | |
|       - name: 准备 | 安装依赖
 | |
|         run: |
 | |
|           pnpm install --frozen-lockfile
 | |
|           echo "✅ 依赖安装完成"
 | |
| 
 | |
|       - name: 测试 | 执行语法检查
 | |
|         run: |
 | |
|           echo "🔍 执行 JavaScript 语法检查..."
 | |
|           node -c src/index.js
 | |
|           echo "✅ 语法检查通过"
 | |
| 
 | |
|       - name: 测试 | 执行 Lint 检查
 | |
|         run: |
 | |
|           echo "🔍 执行 Lint 检查..."
 | |
|           pnpm run lint
 | |
|           echo "✅ Lint 检查通过"
 | |
| 
 | |
|       - name: 测试 | 执行格式化检查
 | |
|         run: |
 | |
|           echo "🔍 执行格式化检查..."
 | |
|           pnpm run format:check
 | |
|           echo "✅ 格式化检查通过"
 | |
| 
 | |
|       - name: 测试 | 执行测试
 | |
|         run: |
 | |
|           echo "🧪 执行测试..."
 | |
|           pnpm run test
 | |
|           echo "✅ 测试通过"
 |