| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- kind: pipeline
- type: docker
- name: app-manager-prod
- volumes: # 声明数据卷
- - name: targetDir
- host:
- path: /app-manager
- clone:
- disable: false # 启用代码拉取
- steps:
- - name: build-project
- image: mcr.microsoft.com/dotnet/sdk:7.0
- pull: if-not-exists
- depends_on: [clone] # 依赖的步骤
- volumes: # 挂载数据卷
- - name: targetDir
- path: /drone/src/dist/
- commands: # 执行命令
- - echo '' > ~/.nuget/NuGet/NuGet.Config
- - 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
- - rm -rf /drone/src/dist/*
- - dotnet publish -c release -o ./publish -r linux-x64
- - cp -r ./publish/* /drone/src/dist # 复制文件
- when:
- status:
- - success # 当前步骤成功时执行
- - name: scp-project
- image: appleboy/drone-scp
- pull: if-not-exists
- depends_on: [build-project] # 依赖的步骤
- volumes: # 挂载数据卷
- - name: targetDir # 数据卷名称
- path: /app-manager # 容器内目录 绝对路径
- settings:
- host:
- from_secret: app-manager-host-a
- username:
- from_secret: username
- password:
- from_secret: userpwd
- port: 22
- command_timeout: 2m
- target: /home/ABServer/deploy-ready/
- source:
- - echo ====开始拷贝=======
- - /app-manager/*
- - echo ====结束拷贝=======
- when:
- status:
- - success # 当前步骤成功时执行
- - name: deploy-project
- image: appleboy/drone-ssh
- pull: if-not-exists
- depends_on: [scp-project] # 依赖的步骤
- settings:
- host:
- from_secret: app-manager-host-a
- username:
- from_secret: username
- password:
- from_secret: userpwd
- port: 22
- command_timeout: 2m
- script:
- - echo ====备份线上文件=======
- - cp -r /home/ABServer/webroot/app-manager /home/ABServer/deploy-bak/
- - echo ====开始部署=======
- - cd /home/ABServer/
- - cp -r /home/ABServer/deploy-ready/app-manager /home/ABServer/webroot/
- - docker restart app-manager
- - echo ====等待容器启动=======
- - sleep 10 # 等待容器启动
- - echo ====部署成功=======
- when:
- status:
- - success # 当前步骤成功时执行
- - name: scp-project-b
- image: appleboy/drone-scp
- pull: if-not-exists
- depends_on: [deploy-project] # 依赖的步骤
- volumes: # 挂载数据卷
- - name: targetDir # 数据卷名称
- path: /app-manager # 容器内目录 绝对路径
- settings:
- host:
- from_secret: app-manager-host-b
- username:
- from_secret: username
- password:
- from_secret: userpwd
- port: 22
- command_timeout: 10m
- target: /home/ABServer/deploy-ready/
- source:
- - echo ====开始拷贝=======
- - /app-manager/*
- - echo ====结束拷贝=======
- when:
- status:
- - success # 当前步骤成功时执行
- - name: deploy-project-b
- image: appleboy/drone-ssh
- pull: if-not-exists
- depends_on: [scp-project-b] # 依赖的步骤
- settings:
- host:
- from_secret: app-manager-host-b
- username:
- from_secret: username
- password:
- from_secret: userpwd
- port: 22
- command_timeout: 10m
- script:
- - echo ====备份线上文件=======
- - cp -r /home/ABServer/webroot/app-manager /home/ABServer/deploy-bak/app-manager
- - echo ====开始部署=======
- - cd /home/ABServer/
- - cp -r /home/ABServer/deploy-ready/app-manager /home/ABServer/webroot/
- - docker restart app-manager
- # - docker restart nodeServer1
- - echo ====部署成功=======
- when:
- status:
- - success # 当前步骤成功时执行
- trigger:
- branch:
- - release-app-manager
- event:
- - push
- #排除合并请求
- exclude:
- - ref: refs/pull/*
|