diff --git a/.drone.yml b/.drone.yml index a16016b..754e859 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,8 +1,8 @@ kind: pipeline type: docker -name: deploy-dev1 +name: deploy-test -# 开发环境1:test 分支触发,部署到 kpl-dev +# 测试环境:test 分支触发,部署到 kpl trigger: branch: - test @@ -20,14 +20,14 @@ steps: port: 22 command_timeout: 5m script: - - echo "=== [开发1] 同步代码到 kpl-dev ===" + - echo "=== [测试环境] 同步代码 ===" - cd /root/aiedu - git fetch origin - git checkout test 2>/dev/null || git checkout -b test origin/test - git reset --hard origin/test - echo "代码同步完成" - - name: rebuild-dev1 + - name: build-frontend-test image: appleboy/drone-ssh settings: host: 120.79.247.16 @@ -37,22 +37,39 @@ steps: port: 22 command_timeout: 10m script: - - echo "=== [开发1] 重建 kpl-dev 环境 ===" - - cd /root/aiedu - - docker-compose -f docker-compose.dev.yml up -d --build + - echo "=== [测试环境] 编译前端到 dist-test ===" + - cd /root/aiedu/kaopeilian-frontend + - npm install --silent + - npm run build + - rm -rf /root/aiedu/dist-test/* + - cp -r dist/* /root/aiedu/dist-test/ + - echo "前端编译完成 -> dist-test" + + - name: restart-backend + image: appleboy/drone-ssh + settings: + host: 120.79.247.16 + username: root + password: + from_secret: prod_ssh_password + port: 22 + command_timeout: 5m + script: + - echo "=== [测试环境] 重启后端 ===" + - docker restart kpl-backend-dev - sleep 5 - docker ps | grep kpl- - - echo "=== [开发1] 部署完成: https://kpl.ireborn.com.cn ===" + - echo "=== 测试环境部署完成: https://kpl.ireborn.com.cn ===" --- kind: pipeline type: docker -name: deploy-dev2 +name: deploy-staging -# 开发环境2:dev2 分支触发,部署到 kaopeilian 主站 +# 预生产环境:staging 分支触发,部署到 aiedu trigger: branch: - - dev2 + - staging event: - push @@ -67,14 +84,14 @@ steps: port: 22 command_timeout: 5m script: - - echo "=== [开发2] 同步代码到 kaopeilian 主站 ===" + - echo "=== [预生产] 同步代码 ===" - cd /root/aiedu - git fetch origin - - git checkout dev2 2>/dev/null || git checkout -b dev2 origin/dev2 - - git reset --hard origin/dev2 + - git checkout staging 2>/dev/null || git checkout -b staging origin/staging + - git reset --hard origin/staging - echo "代码同步完成" - - name: build-frontend + - name: build-frontend-staging image: appleboy/drone-ssh settings: host: 120.79.247.16 @@ -84,13 +101,15 @@ steps: port: 22 command_timeout: 10m script: - - echo "=== [开发2] 编译前端 ===" + - echo "=== [预生产] 编译前端到 dist-staging ===" - cd /root/aiedu/kaopeilian-frontend - npm install --silent - npm run build - - echo "前端编译完成" + - rm -rf /root/aiedu/dist-staging/* + - cp -r dist/* /root/aiedu/dist-staging/ + - echo "前端编译完成 -> dist-staging" - - name: rebuild-backend + - name: restart-backend image: appleboy/drone-ssh settings: host: 120.79.247.16 @@ -98,21 +117,20 @@ steps: password: from_secret: prod_ssh_password port: 22 - command_timeout: 10m + command_timeout: 5m script: - - echo "=== [开发2] 重建 kaopeilian 后端 ===" - - cd /root/aiedu + - echo "=== [预生产] 重启后端 ===" - docker restart kaopeilian-backend - sleep 5 - - docker ps | grep kaopeilian-backend - - echo "=== [开发2] 部署完成: https://aiedu.ireborn.com.cn ===" + - docker ps | grep kaopeilian- + - echo "=== 预生产部署完成: https://aiedu.ireborn.com.cn ===" --- kind: pipeline type: docker name: deploy-prod -# 生产环境:main 分支触发,支持选择性部署租户 +# 生产环境:main 分支触发,部署到所有租户 # # 使用方法: # git commit -m "feat: xxx [all]" - 部署所有租户 @@ -137,13 +155,13 @@ steps: port: 22 command_timeout: 10m script: - - echo "=== [生产] 同步代码到生产服务器 ===" + - echo "=== [生产] 同步代码 ===" - cd /root/aiedu - git fetch origin - git reset --hard origin/main - echo "代码同步完成" - - name: build-frontend + - name: build-frontend-prod image: appleboy/drone-ssh settings: host: 120.79.247.16 @@ -153,11 +171,13 @@ steps: port: 22 command_timeout: 10m script: - - echo "=== [生产] 编译前端(所有租户共享)===" + - echo "=== [生产] 编译前端到 dist-prod ===" - cd /root/aiedu/kaopeilian-frontend - npm install --silent - npm run build - - echo "前端编译完成,所有租户已更新" + - rm -rf /root/aiedu/dist-prod/* + - cp -r dist/* /root/aiedu/dist-prod/ + - echo "前端编译完成 -> dist-prod,所有生产租户已更新" - name: deploy-tenants image: appleboy/drone-ssh @@ -191,14 +211,14 @@ steps: echo "默认部署所有租户: $TENANTS" fi - # 构建 docker-compose 命令 + # 构建 docker compose 命令 BACKEND_SERVICES="" for t in $TENANTS; do BACKEND_SERVICES="$BACKEND_SERVICES ${t}-backend" done echo "重建后端服务: $BACKEND_SERVICES" - docker-compose -f docker-compose.prod-multi.yml up -d --build --no-deps $BACKEND_SERVICES + docker compose -f docker-compose.prod-multi.yml up -d --build --no-deps $BACKEND_SERVICES sleep 10 docker ps | grep backend