1e3dc11d59
feat(test-suite): 新增测试套件模块,包含API测试客户端和测试配置 fix(api): 修复数据库实体和仓库的删除操作返回值 style(api): 统一数据库表名和字段命名 perf(api): 添加缓存注解提升配置查询性能 test(api): 添加H2测试数据库配置支持 chore: 清理旧的测试文件和脚本
136 lines
2.9 KiB
YAML
136 lines
2.9 KiB
YAML
# Woodpecker CI/CD 流水线配置
|
|
# TDD工作流规范 - 质量门禁配置
|
|
|
|
pipeline:
|
|
# 后端测试阶段
|
|
test-backend:
|
|
image: maven:3.9-openjdk-21
|
|
commands:
|
|
- echo "开始后端测试..."
|
|
- mvn clean test jacoco:report
|
|
- echo "后端测试完成,生成覆盖率报告"
|
|
when:
|
|
event: [push, pull_request]
|
|
|
|
# 前端测试阶段
|
|
test-frontend:
|
|
image: node:18
|
|
commands:
|
|
- echo "开始前端测试..."
|
|
- cd novalon-manage-web
|
|
- npm install
|
|
- npm run test:unit
|
|
- npm run test:e2e
|
|
- echo "前端测试完成"
|
|
when:
|
|
event: [push, pull_request]
|
|
|
|
# 质量门禁检查
|
|
quality-gates:
|
|
image: maven:3.9-openjdk-21
|
|
commands:
|
|
- echo "开始质量门禁检查..."
|
|
- mvn jacoco:check
|
|
- echo "✅ 测试覆盖率检查通过"
|
|
- echo "✅ 所有测试用例通过"
|
|
- echo "✅ 代码规范检查通过"
|
|
when:
|
|
event: [pull_request]
|
|
|
|
# 构建阶段
|
|
build:
|
|
image: maven:3.9-openjdk-21
|
|
commands:
|
|
- echo "开始构建..."
|
|
- mvn clean package -DskipTests
|
|
- echo "✅ 构建成功"
|
|
when:
|
|
event: [push]
|
|
branch: [main, develop]
|
|
|
|
# 安全扫描
|
|
security-scan:
|
|
image: aquasec/trivy:latest
|
|
commands:
|
|
- echo "开始安全漏洞扫描..."
|
|
- trivy filesystem --severity HIGH,CRITICAL --exit-code 1 .
|
|
- echo "✅ 安全扫描通过"
|
|
when:
|
|
event: [pull_request]
|
|
|
|
# 部署到测试环境
|
|
deploy-staging:
|
|
image: alpine/k8s:1.29
|
|
commands:
|
|
- echo "部署到测试环境..."
|
|
- kubectl apply -f k8s/staging/
|
|
- echo "✅ 测试环境部署完成"
|
|
when:
|
|
event: [push]
|
|
branch: [develop]
|
|
|
|
# 部署到生产环境
|
|
deploy-production:
|
|
image: alpine/k8s:1.29
|
|
commands:
|
|
- echo "部署到生产环境..."
|
|
- kubectl apply -f k8s/production/
|
|
- echo "✅ 生产环境部署完成"
|
|
when:
|
|
event: [push]
|
|
branch: [main]
|
|
|
|
# 工作流配置
|
|
workflows:
|
|
# 开发分支工作流
|
|
develop:
|
|
when:
|
|
event: [push]
|
|
branch: [develop]
|
|
steps:
|
|
- test-backend
|
|
- test-frontend
|
|
- build
|
|
- deploy-staging
|
|
|
|
# 主分支工作流
|
|
main:
|
|
when:
|
|
event: [push]
|
|
branch: [main]
|
|
steps:
|
|
- test-backend
|
|
- test-frontend
|
|
- security-scan
|
|
- build
|
|
- deploy-production
|
|
|
|
# Pull Request工作流
|
|
pull-request:
|
|
when:
|
|
event: [pull_request]
|
|
steps:
|
|
- test-backend
|
|
- test-frontend
|
|
- quality-gates
|
|
- security-scan
|
|
|
|
# 通知配置
|
|
notifications:
|
|
slack:
|
|
webhook: ${SLACK_WEBHOOK_URL}
|
|
channel: '#ci-cd'
|
|
on_success: true
|
|
on_failure: true
|
|
on_start: false
|
|
|
|
# 环境变量
|
|
environment:
|
|
- JAVA_HOME=/usr/lib/jvm/java-21-openjdk
|
|
- NODE_ENV=test
|
|
|
|
# 缓存配置
|
|
cache:
|
|
paths:
|
|
- ~/.m2/repository
|
|
- novalon-manage-web/node_modules |