|
|
@@ -9,90 +9,155 @@ trigger:
|
|
|
|
|
|
steps:
|
|
|
|
|
|
- # Maven 构建(Master)
|
|
|
- - name: build-master
|
|
|
- image: maven:3.8-openjdk-17
|
|
|
+ # Maven 缓存
|
|
|
+ - name: restore-cache
|
|
|
+ image: drillster/drone-volume-cache
|
|
|
+ settings:
|
|
|
+ restore: true
|
|
|
+ mount:
|
|
|
+ - /root/.m2/repository
|
|
|
+ volumes:
|
|
|
+ - name: repository
|
|
|
+ path: /cache
|
|
|
+
|
|
|
+ # 打包 prod
|
|
|
+ - name: build-prod
|
|
|
+ image: matderosa/maven-3.8-openjdk-17-gcc8.5
|
|
|
volumes:
|
|
|
- name: maven-cache
|
|
|
path: /root/.m2
|
|
|
- - name: build-output
|
|
|
+ - name: maven-build
|
|
|
path: /app/build
|
|
|
commands:
|
|
|
- mvn clean package -P prod
|
|
|
- mkdir -p /app/build/target
|
|
|
- cp target/test.jar /app/build/target/test.jar
|
|
|
- - cp Dockerfile docker-compose.yml /app/build/
|
|
|
+ - cp Dockerfile /app/build/Dockerfile
|
|
|
+ - cp docker-compose.yml /app/build/docker-compose.yml
|
|
|
when:
|
|
|
branch:
|
|
|
- - master
|
|
|
+ master
|
|
|
|
|
|
- # Maven 构建(Develop)
|
|
|
- - name: build-develop
|
|
|
- image: maven:3.8-openjdk-17
|
|
|
+ # 打包 dev
|
|
|
+ - name: build-dev
|
|
|
+ image: matderosa/maven-3.8-openjdk-17-gcc8.5
|
|
|
volumes:
|
|
|
- name: maven-cache
|
|
|
path: /root/.m2
|
|
|
- - name: build-output
|
|
|
+ - name: maven-build-dev
|
|
|
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/
|
|
|
+ - cp Dockerfile /app/build/Dockerfile
|
|
|
+ - cp docker-compose.yml /app/build/docker-compose.yml
|
|
|
when:
|
|
|
branch:
|
|
|
- - develop
|
|
|
+ develop
|
|
|
|
|
|
- # 部署(Master)
|
|
|
- - name: deploy-master
|
|
|
- image: appleboy/drone-ssh:1.8.0
|
|
|
+ # 传输 prod
|
|
|
+ - name: scp-master
|
|
|
+ image: appleboy/drone-scp
|
|
|
settings:
|
|
|
+ port: 22
|
|
|
host:
|
|
|
- from_secret: ssh_host
|
|
|
+ from_secret: test_ssh_host
|
|
|
username:
|
|
|
- from_secret: ssh_user
|
|
|
+ from_secret: test_ssh_username
|
|
|
password:
|
|
|
- from_secret: ssh_pwd
|
|
|
+ from_secret: test_ssh_password
|
|
|
+ command_timeout: 5m
|
|
|
+ source:
|
|
|
+ - target/test.jar
|
|
|
+ target: /home/TestApp/
|
|
|
+ when:
|
|
|
+ branch: master
|
|
|
+ path:
|
|
|
+ - "!db/**"
|
|
|
+ - "!README.md"
|
|
|
+
|
|
|
+ # 部署 prod
|
|
|
+ - name: deploy-ssh-prod
|
|
|
+ image: appleboy/drone-ssh
|
|
|
+ settings:
|
|
|
port: 22
|
|
|
- command_timeout: 10m
|
|
|
+ host:
|
|
|
+ from_secret: test_ssh_host
|
|
|
+ username:
|
|
|
+ from_secret: test_ssh_username
|
|
|
+ password:
|
|
|
+ from_secret: test_ssh_password
|
|
|
+ command_timeout: 1m
|
|
|
script:
|
|
|
- - cd /home/app
|
|
|
- - docker-compose down
|
|
|
- - docker-compose build
|
|
|
- - docker-compose up -d
|
|
|
- - docker image prune -f
|
|
|
- - echo "Master deployment finished"
|
|
|
+ - cd /home/TestApp
|
|
|
+ - sudo docker build -t test .
|
|
|
+ - sudo docker-compose down
|
|
|
+ - sudo docker-compose up -d
|
|
|
+ - sudo echo "Docker App started."
|
|
|
when:
|
|
|
- branch:
|
|
|
- - master
|
|
|
+ branch: master
|
|
|
|
|
|
- # 部署(Develop)
|
|
|
- - name: deploy-develop
|
|
|
- image: appleboy/drone-ssh:1.8.0
|
|
|
+ # 传输 dev
|
|
|
+ - name: scp-develop
|
|
|
+ image: appleboy/drone-scp
|
|
|
settings:
|
|
|
+ port: 22
|
|
|
host:
|
|
|
- from_secret: ssh_host
|
|
|
+ from_secret: test_ssh_host
|
|
|
username:
|
|
|
- from_secret: ssh_user
|
|
|
+ from_secret: test_ssh_username
|
|
|
password:
|
|
|
- from_secret: ssh_pwd
|
|
|
+ from_secret: test_ssh_password
|
|
|
+ command_timeout: 5m
|
|
|
+ source:
|
|
|
+ - target/test-dev.jar
|
|
|
+ target: /home/TestAppDev/
|
|
|
+ when:
|
|
|
+ branch: develop
|
|
|
+
|
|
|
+ # 部署 dev
|
|
|
+ - name: deploy-ssh-dev
|
|
|
+ image: appleboy/drone-ssh
|
|
|
+ settings:
|
|
|
port: 22
|
|
|
- command_timeout: 10m
|
|
|
+ host:
|
|
|
+ from_secret: test_ssh_host
|
|
|
+ username:
|
|
|
+ from_secret: test_ssh_username
|
|
|
+ password:
|
|
|
+ from_secret: test_ssh_password
|
|
|
+ command_timeout: 1m
|
|
|
script:
|
|
|
- - cd /home/app
|
|
|
- - docker-compose down
|
|
|
- - docker-compose build
|
|
|
- - docker-compose up -d
|
|
|
- - docker image prune -f
|
|
|
- - echo "Develop deployment finished"
|
|
|
+ - cd /home/TestAppDev
|
|
|
+ - sudo docker build -t test-dev .
|
|
|
+ - sudo docker-compose down
|
|
|
+ - sudo docker-compose up -d
|
|
|
+ - sudo echo "Docker App started."
|
|
|
when:
|
|
|
- branch:
|
|
|
- - develop
|
|
|
+ branch: develop
|
|
|
+
|
|
|
+ # 清理镜像
|
|
|
+ - name: cleanup
|
|
|
+ image: docker:dind
|
|
|
+ volumes:
|
|
|
+ - name: docker-sock
|
|
|
+ path: /var/run/docker.sock
|
|
|
+ when:
|
|
|
+ status: [ success ]
|
|
|
+ commands:
|
|
|
+ - docker image prune -f --filter "dangling=true" --filter "until=1h"
|
|
|
|
|
|
volumes:
|
|
|
+ - name: maven-build
|
|
|
+ host:
|
|
|
+ path: /home/TestApp
|
|
|
+ - name: maven-build-dev
|
|
|
+ host:
|
|
|
+ path: /home/TestAppDev
|
|
|
- name: maven-cache
|
|
|
host:
|
|
|
path: /root/docker/maven/cache
|
|
|
- - name: build-output
|
|
|
+ - name: docker-sock
|
|
|
host:
|
|
|
- path: /home/app
|
|
|
+ path: /var/run/docker.sock
|