.drone.yml 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. kind: pipeline
  2. type: docker
  3. name: test-pipeline
  4. clone:
  5. disable: true
  6. steps:
  7. # 克隆代码
  8. - name: clone
  9. image: drone/git:1.2.1
  10. # 构建 jar 包
  11. - name: maven-build
  12. image: maven:3.8-openjdk-17
  13. volumes:
  14. - name: maven-cache
  15. path: /root/.m2
  16. - name: build-output
  17. path: /app/build
  18. commands:
  19. - mvn clean package -P prod
  20. - mkdir -p /app/build/output
  21. # 复制构建物到 output 目录
  22. - cp target/test.jar /app/build/output/
  23. - cp Dockerfile /app/build/output/
  24. - cp docker-compose.yml /app/build/output/
  25. - ls -lh /app/build/output # 调试,确保文件存在
  26. # 上传到服务器
  27. - name: scp-upload
  28. image: appleboy/drone-scp:1.8.0
  29. settings:
  30. host:
  31. from_secret: ssh_host
  32. username:
  33. from_secret: ssh_user
  34. password:
  35. from_secret: ssh_pwd
  36. port: 22
  37. command_timeout: 5m
  38. source:
  39. - /app/build/output/*
  40. target: /home/app/
  41. # 部署服务
  42. - name: deploy
  43. image: appleboy/drone-ssh:1.6.4
  44. settings:
  45. host:
  46. from_secret: ssh_host
  47. username:
  48. from_secret: ssh_user
  49. password:
  50. from_secret: ssh_pwd
  51. port: 22
  52. command_timeout: 5m
  53. script:
  54. - cd /home/app
  55. - docker compose down || true
  56. - docker compose up -d --build
  57. - docker ps -a | grep test # 调试,确认容器是否启动
  58. volumes:
  59. - name: maven-cache
  60. host:
  61. path: /home/mvn/.m2
  62. - name: build-output
  63. temp: {}
  64. trigger:
  65. branch:
  66. - master