kind: pipeline type: docker name: default trigger: branch: - master - develop steps: # Maven 缓存 - name: restore-cache image: drillster/drone-volume-cache settings: restore: true mount: - /root/.m2/repository volumes: - name: maven-cache path: /cache # 打包 prod - name: build-prod image: matderosa/maven-3.8-openjdk-17-gcc8.5 volumes: - name: maven-cache path: /root/.m2 - name: maven-build path: /home/TestApp/build commands: - mvn clean package -P prod - mkdir -p /home/TestApp/build - cp target/test.jar /home/TestApp/build/test.jar - cp Dockerfile /home/TestApp/build/Dockerfile - cp docker-compose.yml /home/TestApp/build/docker-compose.yml when: branch: master # 打包 dev - name: build-dev image: matderosa/maven-3.8-openjdk-17-gcc8.5 volumes: - name: maven-cache path: /root/.m2 - name: maven-build-dev path: /home/TestAppDev/build commands: - mvn clean package -P dev - mkdir -p /home/TestAppDev/build - cp target/test-dev.jar /home/TestAppDev/build/test.jar - cp Dockerfile /home/TestAppDev/build/Dockerfile - cp docker-compose.yml /home/TestAppDev/build/docker-compose.yml when: branch: develop # 传输 prod - name: scp-master image: appleboy/drone-scp settings: port: 22 host: from_secret: ssh_host username: from_secret: ssh_user password: from_secret: ssh_pwd command_timeout: 5m source: - build/test.jar - build/Dockerfile - build/docker-compose.yml target: /home/TestApp/ when: branch: master # 部署 prod - name: deploy-ssh-prod image: appleboy/drone-ssh settings: port: 22 host: from_secret: ssh_host username: from_secret: ssh_user password: from_secret: ssh_pwd command_timeout: 2m script: - cd /home/TestApp - sudo docker-compose down - sudo docker-compose up -d --build - echo "Docker App started." when: branch: master # 传输 dev - name: scp-develop image: appleboy/drone-scp settings: port: 22 host: from_secret: ssh_host username: from_secret: ssh_user password: from_secret: ssh_pwd command_timeout: 5m source: - build/test.jar - build/Dockerfile - build/docker-compose.yml target: /home/TestAppDev/ when: branch: develop # 部署 dev - name: deploy-ssh-dev image: appleboy/drone-ssh settings: port: 22 host: from_secret: ssh_host username: from_secret: ssh_user password: from_secret: ssh_pwd command_timeout: 2m script: - cd /home/TestAppDev - sudo docker-compose down - sudo docker-compose up -d --build - echo "Docker App started." when: 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/build - name: maven-build-dev host: path: /home/TestAppDev/build - name: maven-cache host: path: /root/docker/maven/cache - name: docker-sock host: path: /var/run/docker.sock