kind: pipeline type: docker name: default trigger: branch: - master - develop steps: # 获取缓存 (首次部署注释掉此处) # - 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: maven-build path: /app/build commands: - mvn clean package -P prod -DskipTests - mkdir -p /app/build/target - cp target/test.jar /app/build/target/test.jar - cp Dockerfile /app/build/Dockerfile - cp docker-compose.yml /app/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: /app/build commands: - mvn clean package -P dev -DskipTests - mkdir -p /app/build/target - cp target/test-dev.jar /app/build/target/test-dev.jar - cp Dockerfile /app/build/Dockerfile - cp docker-compose.yml /app/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: - 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 host: from_secret: ssh_host username: from_secret: ssh_user password: from_secret: ssh_pwd command_timeout: 1m script: - 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 # 传输 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: - target/test-dev.jar 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: 1m script: - 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 # 清理镜像 - 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: docker-sock host: path: /var/run/docker.sock