You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
5.9 KiB

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