|
|
@@ -5,51 +5,94 @@ name: default
|
|
|
trigger:
|
|
|
branch:
|
|
|
- master
|
|
|
+ - develop
|
|
|
|
|
|
steps:
|
|
|
- # 1. 构建 jar
|
|
|
- - name: build
|
|
|
- image: maven:3.8.4
|
|
|
+
|
|
|
+ # Maven 构建(Master)
|
|
|
+ - name: build-master
|
|
|
+ image: maven:3.8-openjdk-17
|
|
|
volumes:
|
|
|
- name: maven-cache
|
|
|
path: /root/.m2
|
|
|
+ - name: build-output
|
|
|
+ path: /app/build
|
|
|
commands:
|
|
|
- mvn clean package -P prod
|
|
|
- # 生成的包默认在 target/test.jar
|
|
|
+ - mkdir -p /app/build/target
|
|
|
+ - cp target/test.jar /app/build/target/test.jar
|
|
|
+ - cp Dockerfile docker-compose.yml /app/build/
|
|
|
+ when:
|
|
|
+ branch:
|
|
|
+ - master
|
|
|
+
|
|
|
+ # Maven 构建(Develop)
|
|
|
+ - name: build-develop
|
|
|
+ image: maven:3.8-openjdk-17
|
|
|
+ volumes:
|
|
|
+ - name: maven-cache
|
|
|
+ path: /root/.m2
|
|
|
+ - name: build-output
|
|
|
+ path: /app/build
|
|
|
+ commands:
|
|
|
+ - mvn clean package -P dev
|
|
|
+ - mkdir -p /app/build/target
|
|
|
+ - cp target/test-dev.jar /app/build/target/test-dev.jar
|
|
|
+ - cp Dockerfile docker-compose.yml /app/build/
|
|
|
+ when:
|
|
|
+ branch:
|
|
|
+ - develop
|
|
|
|
|
|
- # 2. 传输 jar 到服务器
|
|
|
- - name: scp
|
|
|
- image: appleboy/drone-scp:1.8.0
|
|
|
+ # 部署(Master)
|
|
|
+ - name: deploy-master
|
|
|
+ image: appleboy/drone-ssh:1.8.0
|
|
|
settings:
|
|
|
- port: 22
|
|
|
host:
|
|
|
from_secret: ssh_host
|
|
|
username:
|
|
|
from_secret: ssh_user
|
|
|
password:
|
|
|
from_secret: ssh_pwd
|
|
|
- source:
|
|
|
- - target/test.jar # ✅ 注意是相对路径
|
|
|
- target: /home/app/ # 服务器上的目录(要先 mkdir -p /home/app)
|
|
|
+ port: 22
|
|
|
+ command_timeout: 10m
|
|
|
+ script:
|
|
|
+ - cd /home/app
|
|
|
+ - docker-compose down
|
|
|
+ - docker-compose build
|
|
|
+ - docker-compose up -d
|
|
|
+ - docker image prune -f
|
|
|
+ - echo "Master deployment finished"
|
|
|
+ when:
|
|
|
+ branch:
|
|
|
+ - master
|
|
|
|
|
|
- # 3. 部署启动
|
|
|
- - name: deploy
|
|
|
+ # 部署(Develop)
|
|
|
+ - name: deploy-develop
|
|
|
image: appleboy/drone-ssh:1.8.0
|
|
|
settings:
|
|
|
- port: 22
|
|
|
host:
|
|
|
from_secret: ssh_host
|
|
|
username:
|
|
|
from_secret: ssh_user
|
|
|
password:
|
|
|
from_secret: ssh_pwd
|
|
|
+ port: 22
|
|
|
command_timeout: 10m
|
|
|
script:
|
|
|
- cd /home/app
|
|
|
- - pkill -f "test.jar" || true # 停掉旧进程
|
|
|
- - nohup java -jar test.jar > app.log 2>&1 &
|
|
|
+ - docker-compose down
|
|
|
+ - docker-compose build
|
|
|
+ - docker-compose up -d
|
|
|
+ - docker image prune -f
|
|
|
+ - echo "Develop deployment finished"
|
|
|
+ when:
|
|
|
+ branch:
|
|
|
+ - develop
|
|
|
|
|
|
volumes:
|
|
|
- name: maven-cache
|
|
|
host:
|
|
|
path: /root/docker/maven/cache
|
|
|
+ - name: build-output
|
|
|
+ host:
|
|
|
+ path: /home/app
|