.drone.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. # 仅 tag 触发:顺序打包 backend / mobile-h5
  2. # web 暂不在 CI 构建(测试机内存不足以跑 Vite 生产包),后续另议
  3. # 产物:/root/hzdyjs-releases/<tag>/{backend,mobile-h5}-<tag>.*
  4. # Maven 缓存:宿主机 /root/maven-repo → 容器 /maven-repo(由 runner DRONE_RUNNER_VOLUMES 注入)
  5. # 发版目录:/root/hzdyjs-releases → /hzdyjs-releases(同上,勿在本文件重复挂载)
  6. kind: pipeline
  7. type: docker
  8. name: package-prod
  9. concurrency:
  10. limit: 1
  11. trigger:
  12. event:
  13. - tag
  14. clone:
  15. depth: 1
  16. steps:
  17. - name: package-backend
  18. image: maven:3.9-eclipse-temurin-17
  19. commands:
  20. - set -eu
  21. - echo "==> backend tag=${DRONE_TAG} commit=${DRONE_COMMIT}"
  22. - test -n "${DRONE_TAG}"
  23. - mkdir -p "/hzdyjs-releases/${DRONE_TAG}"
  24. - cd backend
  25. - |
  26. mvn clean package -Pprod \
  27. -Dmaven.test.skip=true \
  28. -Dmaven.compiler.parameters=true \
  29. -Dmaven.repo.local=/maven-repo
  30. - test -f ruoyi-admin/target/ruoyi-admin.jar
  31. - cp -v ruoyi-admin/target/ruoyi-admin.jar "/hzdyjs-releases/${DRONE_TAG}/backend-${DRONE_TAG}.jar"
  32. - ls -lh "/hzdyjs-releases/${DRONE_TAG}/backend-${DRONE_TAG}.jar"
  33. - name: package-mobile-h5
  34. image: node:20-bookworm
  35. environment:
  36. NPM_CONFIG_REGISTRY: https://registry.npmmirror.com
  37. commands:
  38. - set -eu
  39. - echo "==> mobile-h5 tag=${DRONE_TAG}"
  40. - mkdir -p "/hzdyjs-releases/${DRONE_TAG}"
  41. - corepack enable
  42. - corepack prepare pnpm@9 --activate
  43. - cd mobile
  44. # 仓库内 pnpm-workspace.yaml 无 packages 字段,pnpm9 会直接失败;单包工程移走即可
  45. - mv pnpm-workspace.yaml pnpm-workspace.yaml.ci-bak 2>/dev/null || true
  46. # pnpm-lock.yaml 被 gitignore,不能 --frozen-lockfile
  47. # 跳过 puppeteer 下载 Chromium(H5 构建不需要,否则会卡很久)
  48. - export PUPPETEER_SKIP_DOWNLOAD=1 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
  49. - pnpm install --no-frozen-lockfile --registry https://registry.npmmirror.com
  50. - pnpm run build
  51. - test -d dist/build/h5
  52. - tar -C dist/build/h5 -czf "/hzdyjs-releases/${DRONE_TAG}/mobile-h5-${DRONE_TAG}.tar.gz" .
  53. - ls -lh "/hzdyjs-releases/${DRONE_TAG}/"
  54. - ls -lh "/hzdyjs-releases/${DRONE_TAG}/mobile-h5-${DRONE_TAG}.tar.gz"