kind: pipeline type: docker name: default trigger: branch: - master - develop steps: # 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 - 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 # 部署(Master) - name: deploy-master image: appleboy/drone-ssh:1.8.0 settings: host: from_secret: ssh_host username: from_secret: ssh_user password: from_secret: ssh_pwd 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 # 部署(Develop) - name: deploy-develop image: appleboy/drone-ssh:1.8.0 settings: host: from_secret: ssh_host username: from_secret: ssh_user password: from_secret: ssh_pwd port: 22 command_timeout: 10m script: - cd /home/app - 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