--- kind: pipeline type: docker name: development # 常量值 constants: - &DEVELOPMENT_HOST 192.168.101.69:8000 - &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