.drone.yml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. kind: pipeline
  2. type: docker
  3. name: app-manager-prod
  4. volumes: # 声明数据卷
  5. - name: targetDir
  6. host:
  7. path: /app-manager
  8. clone:
  9. disable: false # 启用代码拉取
  10. steps:
  11. - name: build-project
  12. image: mcr.microsoft.com/dotnet/sdk:7.0
  13. pull: if-not-exists
  14. depends_on: [clone] # 依赖的步骤
  15. volumes: # 挂载数据卷
  16. - name: targetDir
  17. path: /drone/src/dist/
  18. commands: # 执行命令
  19. - echo '' > ~/.nuget/NuGet/NuGet.Config
  20. - echo '<?xml version="1.0" encoding="utf-8"?><configuration><packageSources><add key="nuget.org" value="https://nuget.cdn.azure.cn/v3/index.json" protocolVersion="3" /></packageSources></configuration>' > ~/.nuget/NuGet/NuGet.Config
  21. - rm -rf /drone/src/dist/*
  22. - dotnet publish -c release -o ./publish -r linux-x64
  23. - cp -r ./publish/* /drone/src/dist # 复制文件
  24. when:
  25. status:
  26. - success # 当前步骤成功时执行
  27. - name: scp-project
  28. image: appleboy/drone-scp
  29. pull: if-not-exists
  30. depends_on: [build-project] # 依赖的步骤
  31. volumes: # 挂载数据卷
  32. - name: targetDir # 数据卷名称
  33. path: /app-manager # 容器内目录 绝对路径
  34. settings:
  35. host:
  36. from_secret: app-manager-host-a
  37. username:
  38. from_secret: username
  39. password:
  40. from_secret: userpwd
  41. port: 22
  42. command_timeout: 2m
  43. target: /home/ABServer/deploy-ready/
  44. source:
  45. - echo ====开始拷贝=======
  46. - /app-manager/*
  47. - echo ====结束拷贝=======
  48. when:
  49. status:
  50. - success # 当前步骤成功时执行
  51. - name: deploy-project
  52. image: appleboy/drone-ssh
  53. pull: if-not-exists
  54. depends_on: [scp-project] # 依赖的步骤
  55. settings:
  56. host:
  57. from_secret: app-manager-host-a
  58. username:
  59. from_secret: username
  60. password:
  61. from_secret: userpwd
  62. port: 22
  63. command_timeout: 2m
  64. script:
  65. - echo ====备份线上文件=======
  66. - cp -r /home/ABServer/webroot/app-manager /home/ABServer/deploy-bak/
  67. - echo ====开始部署=======
  68. - cd /home/ABServer/
  69. - cp -r /home/ABServer/deploy-ready/app-manager /home/ABServer/webroot/
  70. - docker restart app-manager
  71. - echo ====等待容器启动=======
  72. - sleep 10 # 等待容器启动
  73. - echo ====部署成功=======
  74. when:
  75. status:
  76. - success # 当前步骤成功时执行
  77. - name: scp-project-b
  78. image: appleboy/drone-scp
  79. pull: if-not-exists
  80. depends_on: [deploy-project] # 依赖的步骤
  81. volumes: # 挂载数据卷
  82. - name: targetDir # 数据卷名称
  83. path: /app-manager # 容器内目录 绝对路径
  84. settings:
  85. host:
  86. from_secret: app-manager-host-b
  87. username:
  88. from_secret: username
  89. password:
  90. from_secret: userpwd
  91. port: 22
  92. command_timeout: 10m
  93. target: /home/ABServer/deploy-ready/
  94. source:
  95. - echo ====开始拷贝=======
  96. - /app-manager/*
  97. - echo ====结束拷贝=======
  98. when:
  99. status:
  100. - success # 当前步骤成功时执行
  101. - name: deploy-project-b
  102. image: appleboy/drone-ssh
  103. pull: if-not-exists
  104. depends_on: [scp-project-b] # 依赖的步骤
  105. settings:
  106. host:
  107. from_secret: app-manager-host-b
  108. username:
  109. from_secret: username
  110. password:
  111. from_secret: userpwd
  112. port: 22
  113. command_timeout: 10m
  114. script:
  115. - echo ====备份线上文件=======
  116. - cp -r /home/ABServer/webroot/app-manager /home/ABServer/deploy-bak/app-manager
  117. - echo ====开始部署=======
  118. - cd /home/ABServer/
  119. - cp -r /home/ABServer/deploy-ready/app-manager /home/ABServer/webroot/
  120. - docker restart app-manager
  121. # - docker restart nodeServer1
  122. - echo ====部署成功=======
  123. when:
  124. status:
  125. - success # 当前步骤成功时执行
  126. trigger:
  127. branch:
  128. - release-app-manager
  129. event:
  130. - push
  131. #排除合并请求
  132. exclude:
  133. - ref: refs/pull/*