|
|
@@ -1,9 +1,8 @@
|
|
|
# zkxw:仅编译打包,不自动部署测试环境
|
|
|
# 触发:push / tag
|
|
|
-# 产物:artifacts/*.tar.gz(日志打印 sha256)
|
|
|
+# 产物:各 step 日志打印 artifacts sha256
|
|
|
#
|
|
|
-# 说明:关闭默认 clone(drone/git 在国内难拉),在 node 镜像内 git clone。
|
|
|
-# 构建镜像优先用已 tag 的 node:20-bookworm(部署时从 daoCloud 预拉)。
|
|
|
+# 说明:关闭默认 clone(drone/git 难拉);分步构建以降低 3.6G 机器峰值内存。
|
|
|
|
|
|
kind: pipeline
|
|
|
type: docker
|
|
|
@@ -21,7 +20,7 @@ trigger:
|
|
|
- tag
|
|
|
|
|
|
steps:
|
|
|
- - name: build-and-package
|
|
|
+ - name: clone
|
|
|
image: node:20-bookworm
|
|
|
environment:
|
|
|
GOGS_HTTP: http://101.35.245.122:3000
|
|
|
@@ -33,29 +32,47 @@ steps:
|
|
|
echo "[CI] clone $GOGS_HTTP/wuzilong/zkxw.git branch=$BRANCH commit=${DRONE_COMMIT}"
|
|
|
git clone --depth 50 --branch "$BRANCH" "$GOGS_HTTP/wuzilong/zkxw.git" .
|
|
|
git checkout -q "$DRONE_COMMIT"
|
|
|
+
|
|
|
+ - name: build-web-admin
|
|
|
+ image: node:20-bookworm
|
|
|
+ environment:
|
|
|
+ NODE_OPTIONS: --max-old-space-size=1536
|
|
|
+ commands:
|
|
|
+ - set -eu
|
|
|
+ - cp web-admin/.env.docker web-admin/.env.test
|
|
|
+ - corepack enable
|
|
|
+ - corepack prepare pnpm@9.15.9 --activate
|
|
|
+ - cd web-admin
|
|
|
+ - pnpm install --frozen-lockfile
|
|
|
+ - pnpm build:test
|
|
|
+ - cd ..
|
|
|
+ - mkdir -p artifacts
|
|
|
+ - tar -C web-admin -czf artifacts/web-admin-dist.tar.gz dist
|
|
|
+ - sha256sum artifacts/web-admin-dist.tar.gz
|
|
|
+ - ls -lh artifacts/web-admin-dist.tar.gz
|
|
|
+
|
|
|
+ - name: build-oa-h5
|
|
|
+ image: node:20-bookworm
|
|
|
+ environment:
|
|
|
+ NODE_OPTIONS: --max-old-space-size=1024
|
|
|
+ commands:
|
|
|
+ - set -eu
|
|
|
+ - cp mobile-oa-h5/.env.docker mobile-oa-h5/.env.test
|
|
|
+ - cd mobile-oa-h5
|
|
|
+ - npm ci
|
|
|
+ - npm run build -- --mode test
|
|
|
+ - cd ..
|
|
|
+ - mkdir -p artifacts
|
|
|
+ - tar -C mobile-oa-h5 -czf artifacts/oa-h5-dist.tar.gz dist
|
|
|
+ - sha256sum artifacts/oa-h5-dist.tar.gz
|
|
|
+ - ls -lh artifacts/oa-h5-dist.tar.gz
|
|
|
+
|
|
|
+ - name: package-backend
|
|
|
+ image: node:20-bookworm
|
|
|
+ commands:
|
|
|
+ - set -eu
|
|
|
- mkdir -p artifacts
|
|
|
- |
|
|
|
- echo "[CI] prepare env (tracked .env.docker → .env.test; .env.test is gitignored)"
|
|
|
- cp web-admin/.env.docker web-admin/.env.test
|
|
|
- cp mobile-oa-h5/.env.docker mobile-oa-h5/.env.test
|
|
|
- - |
|
|
|
- echo "[CI] web-admin pnpm build:test"
|
|
|
- corepack enable
|
|
|
- corepack prepare pnpm@9.15.9 --activate
|
|
|
- cd web-admin
|
|
|
- pnpm install --frozen-lockfile
|
|
|
- pnpm build:test
|
|
|
- cd ..
|
|
|
- tar -C web-admin -czf artifacts/web-admin-dist.tar.gz dist
|
|
|
- - |
|
|
|
- echo "[CI] mobile-oa-h5 build --mode test"
|
|
|
- cd mobile-oa-h5
|
|
|
- npm ci
|
|
|
- npm run build -- --mode test
|
|
|
- cd ..
|
|
|
- tar -C mobile-oa-h5 -czf artifacts/oa-h5-dist.tar.gz dist
|
|
|
- - |
|
|
|
- echo "[CI] backend source package"
|
|
|
tar -czf artifacts/backend-src.tar.gz \
|
|
|
--exclude='backend/.venv' \
|
|
|
--exclude='backend/venv' \
|
|
|
@@ -65,7 +82,5 @@ steps:
|
|
|
--exclude='backend/.pytest_cache' \
|
|
|
--exclude='backend/graphify-out' \
|
|
|
backend
|
|
|
- - |
|
|
|
- echo "[CI] artifacts checksums"
|
|
|
- sha256sum artifacts/*.tar.gz
|
|
|
- ls -lh artifacts/
|
|
|
+ - sha256sum artifacts/backend-src.tar.gz
|
|
|
+ - ls -lh artifacts/backend-src.tar.gz
|