.drone.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. kind: pipeline
  2. type: docker
  3. name: default
  4. trigger:
  5. branch:
  6. - master
  7. - develop
  8. steps:
  9. # Maven 缓存
  10. - name: restore-cache
  11. image: drillster/drone-volume-cache
  12. settings:
  13. restore: true
  14. mount:
  15. - /root/.m2/repository
  16. volumes:
  17. - name: maven-cache
  18. path: /cache
  19. # 打包 prod
  20. - name: build-prod
  21. image: matderosa/maven-3.8-openjdk-17-gcc8.5
  22. volumes:
  23. - name: maven-cache
  24. path: /root/.m2
  25. - name: maven-build
  26. path: /home/TestApp/build
  27. commands:
  28. - mvn clean package -P prod
  29. - mkdir -p /home/TestApp/build
  30. - cp target/test.jar /home/TestApp/build/test.jar
  31. - cp Dockerfile /home/TestApp/build/Dockerfile
  32. - cp docker-compose.yml /home/TestApp/build/docker-compose.yml
  33. when:
  34. branch:
  35. master
  36. # 打包 dev
  37. - name: build-dev
  38. image: matderosa/maven-3.8-openjdk-17-gcc8.5
  39. volumes:
  40. - name: maven-cache
  41. path: /root/.m2
  42. - name: maven-build-dev
  43. path: /home/TestAppDev/build
  44. commands:
  45. - mvn clean package -P dev
  46. - mkdir -p /home/TestAppDev/build
  47. - cp target/test-dev.jar /home/TestAppDev/build/test.jar
  48. - cp Dockerfile /home/TestAppDev/build/Dockerfile
  49. - cp docker-compose.yml /home/TestAppDev/build/docker-compose.yml
  50. when:
  51. branch:
  52. develop
  53. # 传输 prod
  54. - name: scp-master
  55. image: appleboy/drone-scp
  56. settings:
  57. port: 22
  58. host:
  59. from_secret: ssh_host
  60. username:
  61. from_secret: ssh_user
  62. password:
  63. from_secret: ssh_pwd
  64. command_timeout: 5m
  65. source:
  66. - build/test.jar
  67. - build/Dockerfile
  68. - build/docker-compose.yml
  69. target: /home/TestApp/
  70. when:
  71. branch: master
  72. # 部署 prod
  73. - name: deploy-ssh-prod
  74. image: appleboy/drone-ssh
  75. settings:
  76. port: 22
  77. host:
  78. from_secret: ssh_host
  79. username:
  80. from_secret: ssh_user
  81. password:
  82. from_secret: ssh_pwd
  83. command_timeout: 2m
  84. script:
  85. - cd /home/TestApp
  86. - sudo docker-compose down
  87. - sudo docker-compose up -d --build
  88. - echo "Docker App started."
  89. when:
  90. branch: master
  91. # 传输 dev
  92. - name: scp-develop
  93. image: appleboy/drone-scp
  94. settings:
  95. port: 22
  96. host:
  97. from_secret: ssh_host
  98. username:
  99. from_secret: ssh_user
  100. password:
  101. from_secret: ssh_pwd
  102. command_timeout: 5m
  103. source:
  104. - build/test.jar
  105. - build/Dockerfile
  106. - build/docker-compose.yml
  107. target: /home/TestAppDev/
  108. when:
  109. branch: develop
  110. # 部署 dev
  111. - name: deploy-ssh-dev
  112. image: appleboy/drone-ssh
  113. settings:
  114. port: 22
  115. host:
  116. from_secret: ssh_host
  117. username:
  118. from_secret: ssh_user
  119. password:
  120. from_secret: ssh_pwd
  121. command_timeout: 2m
  122. script:
  123. - cd /home/TestAppDev
  124. - sudo docker-compose down
  125. - sudo docker-compose up -d --build
  126. - echo "Docker App started."
  127. when:
  128. branch: develop
  129. # 清理镜像
  130. - name: cleanup
  131. image: docker:dind
  132. volumes:
  133. - name: docker-sock
  134. path: /var/run/docker.sock
  135. when:
  136. status: [ success ]
  137. commands:
  138. - docker image prune -f --filter "dangling=true" --filter "until=1h"
  139. volumes:
  140. - name: maven-build
  141. host:
  142. path: /home/TestApp/build
  143. - name: maven-build-dev
  144. host:
  145. path: /home/TestAppDev/build
  146. - name: maven-cache
  147. host:
  148. path: /root/docker/maven/cache
  149. - name: docker-sock
  150. host:
  151. path: /var/run/docker.sock