diff --git a/.drone.yml b/.drone.yml index 18ff1a5..ca55306 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,7 +1,8 @@ kind: pipeline type: docker -name: build-and-deploy +name: deploy-test +# 测试环境:test 分支触发 trigger: branch: - test @@ -9,7 +10,6 @@ trigger: - push steps: - # 构建后端镜像 - name: build-backend image: docker:dind volumes: @@ -20,7 +20,6 @@ steps: - docker build -t kaopeilian-backend:${DRONE_COMMIT_SHA:0:8} -f Dockerfile . - docker tag kaopeilian-backend:${DRONE_COMMIT_SHA:0:8} kaopeilian-backend:test - # 构建前端镜像 - name: build-frontend image: docker:dind volumes: @@ -31,7 +30,6 @@ steps: - docker build -t kaopeilian-frontend:${DRONE_COMMIT_SHA:0:8} -f Dockerfile --build-arg VITE_API_BASE_URL=http://kaopeilian.test.ai.ireborn.com.cn . - docker tag kaopeilian-frontend:${DRONE_COMMIT_SHA:0:8} kaopeilian-frontend:test - # 部署测试环境 - name: deploy-test image: docker:dind volumes: @@ -69,7 +67,75 @@ steps: --restart unless-stopped \ kaopeilian-frontend:test - docker ps | grep kaopeilian - - echo "=== 考培练系统测试环境部署完成 ===" + - echo "=== 测试环境部署完成: http://kaopeilian.test.ai.ireborn.com.cn ===" + +volumes: + - name: docker-sock + host: + path: /var/run/docker.sock + +--- +kind: pipeline +type: docker +name: deploy-prod + +# 生产环境:main 分支触发,批量更新所有租户 +trigger: + branch: + - main + event: + - push + +steps: + - name: sync-code-to-server + image: appleboy/drone-ssh + settings: + host: 120.79.247.16 + username: root + password: + from_secret: prod_ssh_password + port: 22 + command_timeout: 10m + script: + - echo "=== 同步代码到生产服务器 ===" + - cd /root/aiedu + - git fetch origin + - git reset --hard origin/main + - echo "代码同步完成" + + - name: build-frontend + image: appleboy/drone-ssh + settings: + host: 120.79.247.16 + username: root + password: + from_secret: prod_ssh_password + port: 22 + command_timeout: 10m + script: + - echo "=== 编译前端(所有租户共享)===" + - cd /root/aiedu/kaopeilian-frontend + - npm install --silent + - npm run build + - echo "前端编译完成,所有租户已更新" + + - name: rebuild-backends + image: appleboy/drone-ssh + settings: + host: 120.79.247.16 + username: root + password: + from_secret: prod_ssh_password + port: 22 + command_timeout: 15m + script: + - echo "=== 重建所有后端服务 ===" + - cd /root/aiedu + - docker-compose -f docker-compose.prod-multi.yml up -d --build --no-deps hua-backend yy-backend hl-backend xy-backend fw-backend ex-backend + - sleep 10 + - docker ps | grep backend + - echo "=== 生产环境批量更新完成 ===" + - echo "租户列表: hua, yy, hl, xy, fw, ex" volumes: - name: docker-sock