Просмотр исходного кода

ci: Drone 暂跳过 web,仅 tag 打包 backend 与 mobile-h5

测试机内存不足以完成 Vite 生产构建,web 后续另议。

Co-authored-by: Cursor <cursoragent@cursor.com>
zlwu 6 дней назад
Родитель
Сommit
776f4e2c6d
2 измененных файлов с 10 добавлено и 32 удалено
  1. 3 20
      .drone.yml
  2. 7 12
      docs/superpowers/specs/2026-10-24-drone-tag-package-design.md

+ 3 - 20
.drone.yml

@@ -1,5 +1,6 @@
-# 仅 tag 触发:顺序打包 backend / web / mobile-h5
-# 产物:/root/hzdyjs-releases/<tag>/{backend,web,mobile-h5}-<tag>.*
+# 仅 tag 触发:顺序打包 backend / mobile-h5
+# web 暂不在 CI 构建(测试机内存不足以跑 Vite 生产包),后续另议
+# 产物:/root/hzdyjs-releases/<tag>/{backend,mobile-h5}-<tag>.*
 # Maven 缓存:宿主机 /root/maven-repo → 容器 /maven-repo(由 runner DRONE_RUNNER_VOLUMES 注入)
 # Maven 缓存:宿主机 /root/maven-repo → 容器 /maven-repo(由 runner DRONE_RUNNER_VOLUMES 注入)
 # 发版目录:/root/hzdyjs-releases → /hzdyjs-releases(同上,勿在本文件重复挂载)
 # 发版目录:/root/hzdyjs-releases → /hzdyjs-releases(同上,勿在本文件重复挂载)
 
 
@@ -35,24 +36,6 @@ steps:
       - cp -v ruoyi-admin/target/ruoyi-admin.jar "/hzdyjs-releases/${DRONE_TAG}/backend-${DRONE_TAG}.jar"
       - cp -v ruoyi-admin/target/ruoyi-admin.jar "/hzdyjs-releases/${DRONE_TAG}/backend-${DRONE_TAG}.jar"
       - ls -lh "/hzdyjs-releases/${DRONE_TAG}/backend-${DRONE_TAG}.jar"
       - ls -lh "/hzdyjs-releases/${DRONE_TAG}/backend-${DRONE_TAG}.jar"
 
 
-  - name: package-web
-    # 无 package-lock(被 gitignore);Node20 需 --legacy-peer-deps 规避 npm edgesOut
-    # 低内存模式:串行 transform、关 gzip 插件、3G 堆(见 web build:ci)
-    image: node:20-bookworm
-    environment:
-      NPM_CONFIG_REGISTRY: https://registry.npmmirror.com
-    commands:
-      - set -eu
-      - echo "==> web tag=${DRONE_TAG} npm=$(npm -v) node=$(node -v) (build:ci low-mem)"
-      - mkdir -p "/hzdyjs-releases/${DRONE_TAG}"
-      - cd web
-      - npm install --legacy-peer-deps --no-audit --no-fund
-      # build:ci 内置 CI/VITE_LOW_MEM/关 gzip + 5G 堆(勿在 Drone environment 再声明自定义变量,会被预处理掏空)
-      - npm run build:ci
-      - test -f dist/index.html
-      - tar -C dist -czf "/hzdyjs-releases/${DRONE_TAG}/web-${DRONE_TAG}.tar.gz" .
-      - ls -lh "/hzdyjs-releases/${DRONE_TAG}/web-${DRONE_TAG}.tar.gz"
-
   - name: package-mobile-h5
   - name: package-mobile-h5
     image: node:20-bookworm
     image: node:20-bookworm
     environment:
     environment:

+ 7 - 12
docs/superpowers/specs/2026-10-24-drone-tag-package-design.md

@@ -1,18 +1,19 @@
-# 杭州第一技师 — Drone Tag 三端打包设计
+# 杭州第一技师 — Drone Tag 打包设计
 
 
 ## 背景
 ## 背景
 
 
-在测试机既有 Gogs + Drone(`101.35.245.122:18088`)上,为仓库 `hzdyjs-xg/all-project` 增加 **仅 tag 触发** 的自动打包,产出后端 / Web / 移动端 H5 三份独立产物,并复用宿主机 Maven 本地仓库以加速 Java 构建。
+在测试机既有 Gogs + Drone(`101.35.245.122:18088`)上,为仓库 `hzdyjs-xg/all-project` 增加 **仅 tag 触发** 的自动打包。因测试机约 3.6G 内存不足以完成 web Vite 生产构建(实测约 36 分钟后 OOM),**CI 当前只打包 backend + mobile-h5**;web 暂缓,后续另议。
 
 
 ## 目标
 ## 目标
 
 
-- Push Git tag → 自动顺序构建三端并落盘
+- Push Git tag → 自动顺序构建 backend、mobile-h5 并落盘
 - 产物可按 tag 并存,便于回溯
 - 产物可按 tag 并存,便于回溯
 - Maven 依赖缓存在宿主机,不因容器销毁而丢失
 - Maven 依赖缓存在宿主机,不因容器销毁而丢失
 
 
 ## 非目标
 ## 非目标
 
 
 - 不自动部署到业务机
 - 不自动部署到业务机
+- CI 暂不打包 web(可本地 `npm run build:prod` / `build:ci`)
 - 不打微信小程序(`build:mp-weixin`);移动端按 `pnpm run build`(H5)
 - 不打微信小程序(`build:mp-weixin`);移动端按 `pnpm run build`(H5)
 - 不合成单一总包
 - 不合成单一总包
 
 
@@ -30,7 +31,6 @@
 ```
 ```
 /root/hzdyjs-releases/<tag>/
 /root/hzdyjs-releases/<tag>/
   backend-<tag>.jar
   backend-<tag>.jar
-  web-<tag>.tar.gz
   mobile-h5-<tag>.tar.gz
   mobile-h5-<tag>.tar.gz
 ```
 ```
 
 
@@ -42,12 +42,7 @@
    `mvn clean package -Pprod -Dmaven.test.skip=true -Dmaven.compiler.parameters=true -Dmaven.repo.local=/maven-repo`  
    `mvn clean package -Pprod -Dmaven.test.skip=true -Dmaven.compiler.parameters=true -Dmaven.repo.local=/maven-repo`  
    源文件:`backend/ruoyi-admin/target/ruoyi-admin.jar` → `backend-<tag>.jar`
    源文件:`backend/ruoyi-admin/target/ruoyi-admin.jar` → `backend-<tag>.jar`
 
 
-2. **web**(`node:20-bookworm`)  
-   `npm install` → `npm run build:prod`  
-   (`web/package-lock.json` 被 gitignore,仓库无 lock,不能用 `npm ci`)  
-   打包 `web/dist` → `web-<tag>.tar.gz`
-
-3. **mobile**(`node:20-bookworm` + corepack/pnpm)  
+2. **mobile**(`node:20-bookworm` + corepack/pnpm)  
    `pnpm install --frozen-lockfile` → `pnpm run build`(即 H5)  
    `pnpm install --frozen-lockfile` → `pnpm run build`(即 H5)  
    打包 `mobile/dist/build/h5` → `mobile-h5-<tag>.tar.gz`
    打包 `mobile/dist/build/h5` → `mobile-h5-<tag>.tar.gz`
 
 
@@ -72,11 +67,11 @@
 
 
 ## 失败策略
 ## 失败策略
 
 
-任一步失败则整次构建失败;不部分覆盖同 tag 目录中已有文件以外的内容时,实现上可先 `mkdir -p` 再逐步写入——若中途失败,该 tag 目录可能不完整,以 Drone 构建状态为准。
+任一步失败则整次构建失败;实现上可先 `mkdir -p` 再逐步写入——若中途失败,该 tag 目录可能不完整,以 Drone 构建状态为准。
 
 
 ## 验收
 ## 验收
 
 
 1. 推送测试 tag(如 `ci-pkg-test-YYYYMMDDHHMM`)
 1. 推送测试 tag(如 `ci-pkg-test-YYYYMMDDHHMM`)
 2. Drone 构建 success
 2. Drone 构建 success
-3. 三文件均存在于 `/root/hzdyjs-releases/<tag>/`,且 jar/tar 非空
+3. `backend-*.jar` 与 `mobile-h5-*.tar.gz` 均存在于 `/root/hzdyjs-releases/<tag>/`,且非空(无 web 包)
 4. 第二次同仓库构建时 Maven 日志出现大量依赖来自本地仓库(明显快于首次)
 4. 第二次同仓库构建时 Maven 日志出现大量依赖来自本地仓库(明显快于首次)