kind: pipeline type: docker name: 武术系统前端自动部署 # 只在 main 分支触发 trigger: branch: - main event: - push steps: # 步骤1:安装依赖 - name: 安装依赖 image: node:18-alpine commands: - echo "开始安装 npm 依赖..." - npm install - echo "✅ 依赖安装完成" # 步骤2:构建生产版本 - name: 构建前端项目 image: node:18-alpine commands: - echo "开始构建前端项目..." - npm run build - ls -lh dist/ - echo "✅ 前端构建完成" # 步骤3:传输文件到服务器 - name: 传输构建产物 image: appleboy/drone-scp settings: host: 154.30.6.21 username: root key: from_secret: ssh_key port: 22 target: /app/martial/frontend-build source: - dist/* - Dockerfile - nginx.conf strip_components: 0 # 步骤4:在服务器上构建镜像并部署 - name: 部署到生产环境 image: appleboy/drone-ssh settings: host: 154.30.6.21 username: root key: from_secret: ssh_key port: 22 script: - cd /app/martial/frontend-build - docker build -t martial/frontend:latest . - cd /app/martial - docker-compose up -d frontend - docker ps | grep martial-frontend - echo "✅ 前端部署完成" # 步骤5:健康检查 - name: 健康检查 image: curlimages/curl:latest commands: - sleep 5 - curl -f http://154.30.6.21/ || exit 1 - echo "✅ 前端访问正常"