76 lines
1.8 KiB
YAML
76 lines
1.8 KiB
YAML
kind: pipeline
|
||
type: kubernetes
|
||
name: verify-knowai-core
|
||
|
||
trigger:
|
||
branch:
|
||
- knowai-core
|
||
event:
|
||
- push
|
||
|
||
volumes:
|
||
- name: pnpm-store-cache
|
||
emptyDir: {}
|
||
- name: repo-volume
|
||
emptyDir: {}
|
||
|
||
clone:
|
||
disable: true
|
||
|
||
steps:
|
||
# 0️⃣ 克隆代码(带自签证书)
|
||
- name: clone
|
||
image: alpine/git:latest
|
||
environment:
|
||
CA_CRT:
|
||
from_secret: ca-crt
|
||
commands:
|
||
- apk add --no-cache ca-certificates
|
||
- echo "$CA_CRT" > /etc/ssl/certs/ca.crt
|
||
- update-ca-certificates
|
||
- git clone https://gitea.local.knowai/tobegold574/knowai.git /drone/src
|
||
- cd /drone/src
|
||
- git checkout ${DRONE_BRANCH}
|
||
- echo "✅ 当前分支:$(git rev-parse --abbrev-ref HEAD)"
|
||
- echo "当前目录"
|
||
- ls
|
||
volumeMounts:
|
||
- name: repo-volume
|
||
mountPath: /drone/src
|
||
|
||
# 1️⃣ 验证 + 安装依赖 + 类型检查 + lint + 测试 + 构建
|
||
- name: verify-and-build
|
||
image: gitea.local.knowai/tobegold574/knowai-base
|
||
environment:
|
||
NODE_ENV: development
|
||
commands:
|
||
- cd /drone/src/knowai-core
|
||
|
||
# 验证 Node.js 和 pnpm
|
||
- node --version
|
||
- pnpm --version
|
||
- echo "📦 安装依赖(利用缓存)..."
|
||
- pnpm install --frozen-lockfile --registry=https://registry.npmmirror.com
|
||
|
||
# 执行核心验证
|
||
- echo "🔍 TypeScript 类型检查..."
|
||
- pnpm run type-check
|
||
|
||
- echo "🔍 ESLint 代码检查..."
|
||
- pnpm run lint
|
||
|
||
- echo "🧪 运行单元测试..."
|
||
- pnpm run test
|
||
|
||
- echo "🔨 构建产物..."
|
||
- pnpm run build
|
||
- ls -la dist/
|
||
|
||
- echo "✅ 核心验证通过"
|
||
|
||
volumeMounts:
|
||
- name: pnpm-store-cache
|
||
mountPath: /pnpm-global/store
|
||
- name: repo-volume
|
||
mountPath: /drone/src
|