.drone.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. kind: pipeline
  2. type: docker
  3. name: kxs-gateway
  4. # 定义变量
  5. data:
  6. branch-name: kxs-gateway
  7. volumes: # 声明数据卷
  8. - name: mvn_repo # 数据卷名称
  9. # Host Volume, 挂载到宿主机上的卷轴
  10. host:
  11. # 宿主机的绝对路径
  12. path: /home/ABServer/cache/mvn_repo
  13. - name: mvn_config
  14. host:
  15. path: /home/ABServer/config/mvn/
  16. - name: targetDir
  17. host:
  18. path: /{{branch-name}}
  19. clone:
  20. disable: false # 启用代码拉取
  21. steps:
  22. - name: build-project
  23. image: maven:3.9.4-amazoncorretto-17
  24. pull: if-not-exists
  25. depends_on: [clone] # 依赖的步骤
  26. volumes: # 挂载数据卷
  27. - name: mvn_repo # 数据卷名称
  28. path: /usr/share/maven/repo # 容器内目录 绝对路径
  29. - name: targetDir
  30. path: /drone/src/dist/
  31. - name: mvn_config
  32. path: /usr/share/maven/conf/
  33. commands: # 执行命令
  34. - mvn clean package -Dmaven.test.skip=true -P test
  35. - cp /drone/src/{{branch-name}}/target/*.jar /drone/src/dist/ && cp -r /drone/src/{{branch-name}}/target/lib /drone/src/dist/ && cp -r /drone/src/{{branch-name}}/target/config /drone/src/dist/ # 复制文件
  36. when:
  37. status:
  38. - success # 当前步骤成功时执行
  39. - name: scp-project
  40. image: appleboy/drone-scp
  41. pull: if-not-exists
  42. depends_on: [build-project] # 依赖的步骤
  43. volumes: # 挂载数据卷
  44. - name: targetDir # 数据卷名称
  45. path: /{{branch-name}} # 容器内目录 绝对路径
  46. settings:
  47. host:
  48. from_secret: host
  49. username:
  50. from_secret: username
  51. password:
  52. from_secret: userpwd
  53. port: 22
  54. command_timeout: 2m
  55. target: /home/ABServer/deploy-ready/
  56. source:
  57. - echo ====开始拷贝=======
  58. - /{{branch-name}}/*.jar
  59. - /{{branch-name}}/lib
  60. - /{{branch-name}}/config
  61. - echo ====结束拷贝=======
  62. when:
  63. status:
  64. - success # 当前步骤成功时执行
  65. - name: deploy-project
  66. image: appleboy/drone-ssh
  67. pull: if-not-exists
  68. depends_on: [scp-project] # 依赖的步骤
  69. settings:
  70. host:
  71. from_secret: host
  72. username:
  73. from_secret: username
  74. password:
  75. from_secret: userpwd
  76. port: 22
  77. command_timeout: 2m
  78. script:
  79. - echo ====开始部署=======
  80. - cd /home/ABServer/
  81. - cp -r /home/ABServer/deploy-ready/{{branch-name}} /home/ABServer/webroot/
  82. - docker stop {{branch-name}} && docker rm {{branch-name}} && docker-compose up -d
  83. # - docker restart nodeServer1
  84. - echo ====部署成功=======
  85. trigger:
  86. branch:
  87. include:
  88. - master
  89. event:
  90. include:
  91. - pull_request
  92. - push