.drone.yml 3.6 KB

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