.drone.yml 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. kind: pipeline
  2. type: docker
  3. name: default
  4. trigger:
  5. branch:
  6. - master
  7. steps:
  8. # 1. 构建 jar
  9. - name: build
  10. image: maven:3.8.4
  11. volumes:
  12. - name: maven-cache
  13. path: /root/.m2
  14. commands:
  15. - mvn clean package -P prod
  16. # 生成的包默认在 target/test.jar
  17. # 2. 传输 jar 到服务器
  18. - name: scp
  19. image: appleboy/drone-scp:1.8.0
  20. settings:
  21. port: 22
  22. host:
  23. from_secret: ssh_host
  24. username:
  25. from_secret: ssh_user
  26. password:
  27. from_secret: ssh_pwd
  28. source:
  29. - target/test.jar # ✅ 注意是相对路径
  30. target: /home/app/ # 服务器上的目录(要先 mkdir -p /home/app)
  31. # 3. 部署启动
  32. - name: deploy
  33. image: appleboy/drone-ssh:1.8.0
  34. settings:
  35. port: 22
  36. host:
  37. from_secret: ssh_host
  38. username:
  39. from_secret: ssh_user
  40. password:
  41. from_secret: ssh_pwd
  42. script:
  43. - cd /home/app
  44. - pkill -f "test.jar" || true # 停掉旧进程
  45. - nohup java -jar test.jar > app.log 2>&1 &
  46. volumes:
  47. - name: maven-cache
  48. host:
  49. path: /root/docker/maven/cache