.drone.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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: repository
  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: /app/build
  27. commands:
  28. - mvn clean package -P prod
  29. - mkdir -p /app/build/target
  30. - cp target/test.jar /app/build/target/test.jar
  31. - cp Dockerfile /app/build/Dockerfile
  32. - cp docker-compose.yml /app/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: /app/build
  44. commands:
  45. - mvn clean package -P dev
  46. - mkdir -p /app/build/target
  47. - cp target/test-dev.jar /app/build/target/test-dev.jar
  48. - cp Dockerfile /app/build/Dockerfile
  49. - cp docker-compose.yml /app/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. - target/test.jar
  67. - Dockerfile
  68. - docker-compose.yml
  69. target: /home/TestApp/
  70. when:
  71. branch: master
  72. path:
  73. - "!db/**"
  74. - "!README.md"
  75. # 部署 prod
  76. - name: deploy-ssh-prod
  77. image: appleboy/drone-ssh
  78. settings:
  79. port: 22
  80. host:
  81. from_secret: ssh_host
  82. username:
  83. from_secret: ssh_user
  84. password:
  85. from_secret: ssh_pwd
  86. command_timeout: 1m
  87. script:
  88. - cd /home/TestApp
  89. - sudo docker build -t test .
  90. - sudo docker-compose down
  91. - sudo docker-compose up -d
  92. - sudo echo "Docker App started."
  93. when:
  94. branch: master
  95. # 传输 dev
  96. - name: scp-develop
  97. image: appleboy/drone-scp
  98. settings:
  99. port: 22
  100. host:
  101. from_secret: ssh_host
  102. username:
  103. from_secret: ssh_user
  104. password:
  105. from_secret: ssh_pwd
  106. command_timeout: 5m
  107. source:
  108. - target/test-dev.jar
  109. - Dockerfile
  110. - docker-compose.yml
  111. target: /home/TestAppDev/
  112. when:
  113. branch: develop
  114. # 部署 dev
  115. - name: deploy-ssh-dev
  116. image: appleboy/drone-ssh
  117. settings:
  118. port: 22
  119. host:
  120. from_secret: ssh_host
  121. username:
  122. from_secret: ssh_user
  123. password:
  124. from_secret: ssh_pwd
  125. command_timeout: 1m
  126. script:
  127. - cd /home/TestAppDev
  128. - sudo docker build -t test-dev .
  129. - sudo docker-compose down
  130. - sudo docker-compose up -d
  131. - sudo echo "Docker App started."
  132. when:
  133. branch: develop
  134. # 清理镜像
  135. - name: cleanup
  136. image: docker:dind
  137. volumes:
  138. - name: docker-sock
  139. path: /var/run/docker.sock
  140. when:
  141. status: [ success ]
  142. commands:
  143. - docker image prune -f --filter "dangling=true" --filter "until=1h"
  144. volumes:
  145. - name: maven-build
  146. host:
  147. path: /home/TestApp
  148. - name: maven-build-dev
  149. host:
  150. path: /home/TestAppDev
  151. - name: maven-cache
  152. host:
  153. path: /root/docker/maven/cache
  154. - name: docker-sock
  155. host:
  156. path: /var/run/docker.sock