.drone.yml 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. - ls -lh target # 查看生成的jar
  21. # 把 target 下的 *.jar 重命名为 test.jar
  22. - mv target/*.jar target/test.jar
  23. - mkdir -p /app/build/target
  24. - cp target/test.jar /app/build/target/test.jar
  25. - cp Dockerfile /app/build/Dockerfile
  26. - cp docker-compose.yml /app/build/docker-compose.yml
  27. # 上传到服务器
  28. - name: scp-upload
  29. image: appleboy/drone-scp:1.8.0
  30. settings:
  31. host:
  32. from_secret: ssh_host
  33. username:
  34. from_secret: ssh_user
  35. password:
  36. from_secret: ssh_pwd
  37. port: 22
  38. command_timeout: 5m
  39. source:
  40. - /app/build/output/*
  41. target: /home/app/
  42. # 部署服务
  43. - name: deploy
  44. image: appleboy/drone-ssh:1.6.4
  45. settings:
  46. host:
  47. from_secret: ssh_host
  48. username:
  49. from_secret: ssh_user
  50. password:
  51. from_secret: ssh_pwd
  52. port: 22
  53. command_timeout: 5m
  54. script:
  55. - cd /home/app
  56. - docker compose down || true
  57. - docker compose up -d --build
  58. - docker ps -a | grep test # 调试,确认容器是否启动
  59. volumes:
  60. - name: maven-cache
  61. host:
  62. path: /home/mvn/.m2
  63. - name: build-output
  64. temp: { }
  65. trigger:
  66. branch:
  67. - master