From 1ff1ee8d1b77290492205b96b553b6a4a284fab1 Mon Sep 17 00:00:00 2001 From: aBin Date: Fri, 21 Jan 2022 16:16:55 +0800 Subject: [PATCH] =?UTF-8?q?drone.yml=E6=96=87=E4=BB=B6=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..c30f15e --- /dev/null +++ b/.drone.yml @@ -0,0 +1,219 @@ +--- +kind: pipeline +type: docker +name: development + +# 常量值 +constants: + - &DEVELOPMENT_HOST test.tall.wiki + - &DEVELOPMENT_CMD + - npm config set registry http://registry.npm.taobao.org + - npm i + - npm run build:test + - &DEVELOPMENT_SCP_TARGET /home/greenvalley + - &DEVELOPMENT_URL http://www.sxgreenvalley.com/ + - &DEVELOPMENT_PORT 22 + - &DEVELOPMENT_NODE_VERSION node:16 + - &DEVELOPMENT_BRANCH develop + - &DEVELOPMENT_SCP_SOURCE dist/* + - &SCP_STRIP_DIR_LEVEL 1 + - &NOTIFY_WECHATROBOT_WEBHOOK https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=428e5c5d-f992-4349-939d-9c99556e50b8 + + +# 挂载的主机卷,可以映射到docker容器中 +volumes: + # maven构建缓存(宿主机目录) + - name: ssh_key + host: + path: /root/.ssh/ + - name: cache + host: + path: /var/lib/cache + - name: data + host: + path: /var/lib/data + +steps: + - name: restore-cache + image: drillster/drone-volume-cache + volumes: + - name: cache + path: /cache + settings: + restore: true + mount: + - ./node_modules + + - name: build + image: *DEVELOPMENT_NODE_VERSION + pull: if-not-exists # default always + # volumes: + # - name: cache + # path: /root/.m2 + commands: *DEVELOPMENT_CMD + + - name: rebuild-cache + image: drillster/drone-volume-cache + volumes: + - name: cache + path: /cache + settings: + rebuild: true + mount: + - ./node_modules + + - name: deploy-scp + image: appleboy/drone-scp + pull: if-not-exists + volumes: + - name: ssh_key + path: /root/.ssh/ + settings: + host: *DEVELOPMENT_HOST + port: *DEVELOPMENT_PORT + username: root + key_path: /root/.ssh/id_rsa + rm: true # true则会删除目标目录重建 + target: *DEVELOPMENT_SCP_TARGET + source: *DEVELOPMENT_SCP_SOURCE + strip_components: 1 # 去除的目录层数,如果没有该选项,则拷贝过去是 target/xxx.jar,1代表去除target + + - name: notify-wechatwork + image: fifsky/drone-wechat-work + pull: if-not-exists + settings: + url: *NOTIFY_WECHATROBOT_WEBHOOK + msgtype: markdown + content: | + {{if eq .Status "success" }} + #### 🎉 ${DRONE_REPO} 测试环境构建成功 + > Branch: ${DRONE_BRANCH} + > Commit: [${DRONE_COMMIT_MESSAGE} ](${DRONE_COMMIT_LINK}) + > Author: ${DRONE_COMMIT_AUTHOR} + > PATH: http://www.sxgreenvalley.com/ + > [点击查看](http://www.sxgreenvalley.com/) + {{else}} + #### ❌ ${DRONE_REPO} 测试环境构建失败 + > Branch: ${DRONE_BRANCH} + > Commit: [${DRONE_COMMIT_MESSAGE} ](${DRONE_COMMIT_LINK}) + > Author: ${DRONE_COMMIT_AUTHOR} + > 请立即修复!!! + > [点击查看](http://www.sxgreenvalley.com/) + {{end}} + when: + status: + - failure + - success + +trigger: + branch: + - *DEVELOPMENT_BRANCH + +--- +kind: pipeline +type: docker +name: production + +# 常量值 +constants: + - &PRODUCTION_HOST www.sxgreenvalley.com + - &PRODUCTION_CMD + - npm config set registry http://registry.npm.taobao.org + - npm i + - npm run build + - &PRODUCTION_SCP_TARGET /home/greenvalley + - &PRODUCTION_BRANCH master + - &PRODUCTION_PORT 22 + - &PRODUCTION_NODE_VERSION node:16 + - &PRODUCTION_SCP_SOURCE dist/* + - &SCP_STRIP_DIR_LEVEL 1 + - &NOTIFY_WECHATROBOT_WEBHOOK https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=428e5c5d-f992-4349-939d-9c99556e50b8 + +# 挂载的主机卷,可以映射到docker容器中 +volumes: + # maven构建缓存(宿主机目录) + - name: ssh_key + host: + path: /root/.ssh/ + - name: cache + host: + path: /var/lib/cache + - name: data + host: + path: /var/lib/data + +steps: + - name: restore-cache + image: drillster/drone-volume-cache + volumes: + - name: cache + path: /cache + settings: + restore: true + mount: + - ./node_modules + + - name: build + image: *PRODUCTION_NODE_VERSION + pull: if-not-exists # default always + # volumes: + # - name: cache + # path: /root/.m2 + commands: *PRODUCTION_CMD + + - name: rebuild-cache + image: drillster/drone-volume-cache + volumes: + - name: cache + path: /cache + settings: + rebuild: true + mount: + - ./node_modules + + - name: deploy-scp + image: appleboy/drone-scp + pull: if-not-exists + volumes: + - name: ssh_key + path: /root/.ssh/ + settings: + host: *PRODUCTION_HOST + port: *PRODUCTION_PORT + username: root + key_path: /root/.ssh/id_rsa + rm: true # true则会删除目标目录重建 + target: *PRODUCTION_SCP_TARGET + source: *PRODUCTION_SCP_SOURCE + strip_components: 1 # 去除的目录层数,如果没有该选项,则拷贝过去是 target/xxx.jar,1代表去除target + + - name: notify-wechatwork + image: fifsky/drone-wechat-work + pull: if-not-exists + settings: + url: *NOTIFY_WECHATROBOT_WEBHOOK + msgtype: markdown + content: | + {{if eq .Status "success" }} + #### 🎉 ${DRONE_REPO} 生产环境构建成功 + > Branch: ${DRONE_BRANCH} + > Commit: [${DRONE_COMMIT_MESSAGE}](${DRONE_COMMIT_LINK}) + > Author: ${DRONE_COMMIT_AUTHOR} + > PATH: http://www.sxgreenvalley.com/ + > [点击查看](http://www.sxgreenvalley.com/) + {{else}} + #### ❌ ${DRONE_REPO} 生产环境构建失败 + > Branch: ${DRONE_BRANCH} + > Commit: [${DRONE_COMMIT_MESSAGE}](${DRONE_COMMIT_LINK}) + > Author: ${DRONE_COMMIT_AUTHOR} + > 请立即修复!!! + > [点击查看](http://www.sxgreenvalley.com/) + {{end}} + when: + status: + - failure + - success + +trigger: + branch: + - *PRODUCTION_BRANCH