ci: drone file
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
This commit is contained in:
parent
ab6b23d3b7
commit
651fb333d8
|
|
@ -0,0 +1,236 @@
|
|||
kind: pipeline
|
||||
type: docker
|
||||
name: xlx-teacher-app-build
|
||||
|
||||
# 触发条件:任何分支的 push 都会触发构建
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- pull_request
|
||||
|
||||
# 定义构建步骤
|
||||
steps:
|
||||
# 步骤 1: 安装 pnpm 并缓存依赖
|
||||
- name: install-dependencies
|
||||
image: node:18-alpine
|
||||
commands:
|
||||
# 设置国内镜像
|
||||
- npm config set registry https://registry.npmmirror.com
|
||||
|
||||
# 安装 pnpm (使用项目指定版本)
|
||||
- npm install -g pnpm@10.10.0
|
||||
|
||||
# 设置 pnpm 国内镜像和缓存配置
|
||||
- pnpm config set registry https://registry.npmmirror.com
|
||||
- pnpm config set store-dir /drone/src/.pnpm-store
|
||||
- pnpm config set cache-dir /drone/src/.pnpm-cache
|
||||
|
||||
# 显示版本信息
|
||||
- node --version
|
||||
- npm --version
|
||||
- pnpm --version
|
||||
|
||||
# 安装依赖
|
||||
- pnpm install --frozen-lockfile
|
||||
|
||||
# 显示安装结果
|
||||
- echo "依赖安装完成"
|
||||
volumes:
|
||||
# 缓存 pnpm 依赖到宿主机
|
||||
- name: pnpm-store
|
||||
path: /drone/src/.pnpm-store
|
||||
- name: pnpm-cache
|
||||
path: /drone/src/.pnpm-cache
|
||||
- name: node-modules
|
||||
path: /drone/src/node_modules
|
||||
|
||||
# 步骤 2: 类型检查
|
||||
- name: type-check
|
||||
image: node:18-alpine
|
||||
commands:
|
||||
# 设置国内镜像
|
||||
- npm config set registry https://registry.npmmirror.com
|
||||
- npm install -g pnpm@10.10.0
|
||||
- pnpm config set registry https://registry.npmmirror.com
|
||||
|
||||
# TypeScript 类型检查
|
||||
- pnpm run type-check
|
||||
|
||||
- echo "类型检查通过"
|
||||
volumes:
|
||||
- name: pnpm-store
|
||||
path: /drone/src/.pnpm-store
|
||||
- name: pnpm-cache
|
||||
path: /drone/src/.pnpm-cache
|
||||
- name: node-modules
|
||||
path: /drone/src/node_modules
|
||||
depends_on:
|
||||
- install-dependencies
|
||||
|
||||
# 步骤 3: 代码检查
|
||||
- name: lint-check
|
||||
image: node:18-alpine
|
||||
commands:
|
||||
# 设置国内镜像
|
||||
- npm config set registry https://registry.npmmirror.com
|
||||
- npm install -g pnpm@10.10.0
|
||||
- pnpm config set registry https://registry.npmmirror.com
|
||||
|
||||
# ESLint 代码检查
|
||||
- pnpm run lint
|
||||
|
||||
- echo "代码检查通过"
|
||||
volumes:
|
||||
- name: pnpm-store
|
||||
path: /drone/src/.pnpm-store
|
||||
- name: pnpm-cache
|
||||
path: /drone/src/.pnpm-cache
|
||||
- name: node-modules
|
||||
path: /drone/src/node_modules
|
||||
depends_on:
|
||||
- install-dependencies
|
||||
|
||||
# 步骤 4: 构建 H5 版本
|
||||
- name: build-h5
|
||||
image: node:18-alpine
|
||||
commands:
|
||||
# 设置国内镜像
|
||||
- npm config set registry https://registry.npmmirror.com
|
||||
- npm install -g pnpm@10.10.0
|
||||
- pnpm config set registry https://registry.npmmirror.com
|
||||
|
||||
# 显示版本信息
|
||||
- node --version
|
||||
- pnpm --version
|
||||
|
||||
# 构建 H5 版本
|
||||
- pnpm run build:h5
|
||||
|
||||
# 显示构建结果
|
||||
- ls -la dist/
|
||||
- echo "H5 版本构建完成"
|
||||
volumes:
|
||||
- name: pnpm-store
|
||||
path: /drone/src/.pnpm-store
|
||||
- name: pnpm-cache
|
||||
path: /drone/src/.pnpm-cache
|
||||
- name: node-modules
|
||||
path: /drone/src/node_modules
|
||||
- name: build-h5-output
|
||||
path: /drone/src/dist
|
||||
depends_on:
|
||||
- type-check
|
||||
- lint-check
|
||||
|
||||
- name: deploy-h5
|
||||
image: alpine:3.18
|
||||
commands:
|
||||
# 确保目标目录存在
|
||||
- mkdir -p /home/xlx_teacher_deploy/h5
|
||||
|
||||
# 备份当前版本(如果存在)
|
||||
- |
|
||||
if [ -d /home/xlx_teacher_deploy/h5/backup ]; then
|
||||
rm -rf /home/xlx_teacher_deploy/h5/backup
|
||||
fi
|
||||
- |
|
||||
if [ -d /home/xlx_teacher_deploy/h5/assets ] || [ -f /home/xlx_teacher_deploy/h5/index.html ]; then
|
||||
mkdir -p /home/xlx_teacher_deploy/h5/backup
|
||||
cp -r /home/xlx_teacher_deploy/h5/* /home/xlx_teacher_deploy/h5/backup/ 2>/dev/null || true
|
||||
echo "已备份当前 H5 版本到 backup 目录"
|
||||
fi
|
||||
|
||||
# 清理目标目录(保留 backup)
|
||||
- find /home/xlx_teacher_deploy/h5 -mindepth 1 -maxdepth 1 -not -name backup -exec rm -rf {} +
|
||||
|
||||
# 同步构建文件到目标目录
|
||||
- cp -r /drone/src/dist/* /home/xlx_teacher_deploy/h5/
|
||||
|
||||
# 设置正确的文件权限
|
||||
- chmod -R 755 /home/xlx_teacher_deploy/h5
|
||||
|
||||
# 显示部署结果
|
||||
- ls -la /home/xlx_teacher_deploy/h5/
|
||||
- echo "H5 版本部署完成"
|
||||
volumes:
|
||||
- name: build-h5-output
|
||||
path: /drone/src/dist
|
||||
- name: deploy-h5-target
|
||||
path: /home/xlx_teacher_deploy
|
||||
depends_on:
|
||||
- build-h5
|
||||
when:
|
||||
branch:
|
||||
- main
|
||||
- master
|
||||
- develop
|
||||
event:
|
||||
- push
|
||||
|
||||
# 定义卷挂载,用于缓存和部署
|
||||
volumes:
|
||||
# pnpm 依赖存储缓存
|
||||
- name: pnpm-store
|
||||
host:
|
||||
path: /tmp/drone-cache/xlx-teacher/pnpm-store
|
||||
# pnpm 缓存目录
|
||||
- name: pnpm-cache
|
||||
host:
|
||||
path: /tmp/drone-cache/xlx-teacher/pnpm-cache
|
||||
# node_modules 缓存
|
||||
- name: node-modules
|
||||
temp: {}
|
||||
# H5 构建输出临时存储
|
||||
- name: build-h5-output
|
||||
temp: {}
|
||||
# 微信小程序构建输出临时存储
|
||||
- name: build-mp-output
|
||||
temp: {}
|
||||
# APP 构建输出临时存储
|
||||
- name: build-app-output
|
||||
temp: {}
|
||||
# H5 部署目标目录
|
||||
- name: deploy-h5-target
|
||||
host:
|
||||
path: /home/xlx_teacher_deploy
|
||||
# 微信小程序部署目标目录
|
||||
- name: deploy-mp-target
|
||||
host:
|
||||
path: /home/xlx_teacher_deploy
|
||||
# APP 部署目标目录
|
||||
- name: deploy-app-target
|
||||
host:
|
||||
path: /home/xlx_teacher_deploy
|
||||
# cache-cleanup pipeline 用到的缓存目录
|
||||
- name: cache-dir
|
||||
host:
|
||||
path: /tmp/drone-cache/xlx-teacher
|
||||
|
||||
---
|
||||
# 清理过期缓存的管道(每周运行一次)
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: cache-cleanup
|
||||
|
||||
trigger:
|
||||
cron:
|
||||
- cleanup-cache
|
||||
event:
|
||||
- cron
|
||||
|
||||
steps:
|
||||
- name: cleanup-old-cache
|
||||
image: alpine:3.18
|
||||
commands:
|
||||
- echo "清理过期的 xlx_teacher_app 缓存..."
|
||||
# 删除 7 天前的缓存文件
|
||||
- find /tmp/drone-cache/xlx-teacher -type f -mtime +7 -delete 2>/dev/null || true
|
||||
- echo "缓存清理完成"
|
||||
volumes:
|
||||
- name: cache-dir
|
||||
path: /tmp/drone-cache/xlx-teacher
|
||||
|
||||
volumes:
|
||||
- name: cache-dir
|
||||
host:
|
||||
path: /tmp/drone-cache/xlx-teacher
|
||||
Loading…
Reference in New Issue