在测试机既有 Gogs + Drone(101.35.245.122:18088)上,为仓库 hzdyjs-xg/all-project 增加 仅 tag 触发 的自动打包,产出后端 / Web / 移动端 H5 三份独立产物,并复用宿主机 Maven 本地仓库以加速 Java 构建。
build:mp-weixin);移动端按 pnpm run build(H5)| 项 | 值 |
|---|---|
| Gogs | http://101.35.245.122:3000/hzdyjs-xg/all-project |
| Drone | 共用现有实例;激活本仓库并 trusted=true(host volume) |
| 触发 | event: tag only |
| 并发 | concurrency.limit: 1 |
/root/hzdyjs-releases/<tag>/
backend-<tag>.jar
web-<tag>.tar.gz
mobile-h5-<tag>.tar.gz
容器内挂载点:/hzdyjs-releases → 宿主机 /root/hzdyjs-releases。
backend(maven:3.9-eclipse-temurin-17)
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
web(node:20-bookworm)
npm install → npm run build:prod
(web/package-lock.json 被 gitignore,仓库无 lock,不能用 npm ci)
打包 web/dist → web-<tag>.tar.gz
mobile(node:20-bookworm + corepack/pnpm)
pnpm install --frozen-lockfile → pnpm run build(即 H5)
打包 mobile/dist/build/h5 → mobile-h5-<tag>.tar.gz
| 项 | 值 |
|---|---|
| 宿主机 | /root/maven-repo |
| 容器 | /maven-repo |
| 注入方式 | runner DRONE_RUNNER_VOLUMES(勿在 .drone.yml 再声明同路径,避免 Duplicate mount) |
在现有 /var/run/docker.sock、/root/zkxw-releases:/releases 基础上追加:
/root/maven-repo:/maven-repo
/root/hzdyjs-releases:/hzdyjs-releases
对 zkxw 流水线无害(未使用的挂载可忽略)。
任一步失败则整次构建失败;不部分覆盖同 tag 目录中已有文件以外的内容时,实现上可先 mkdir -p 再逐步写入——若中途失败,该 tag 目录可能不完整,以 Drone 构建状态为准。
ci-pkg-test-YYYYMMDDHHMM)/root/hzdyjs-releases/<tag>/,且 jar/tar 非空