1 changed files with 148 additions and 0 deletions
@ -0,0 +1,148 @@ |
|||
kind: pipeline |
|||
type: docker |
|||
name: default |
|||
|
|||
# workspace,path可设定默认的拉取目录和每个step中docker镜像的chdir目录,通常不需要设置 |
|||
# workspace官方说明:https://docs.drone.io/yaml/docker/#the-workspace-object |
|||
# 可在repo->setting中设置secret,使用from_secret引用密钥 |
|||
# 常量值 |
|||
constants: |
|||
- &SERVER_HOST test.tall.wiki |
|||
- &SERVER_PORT 30022 |
|||
- &BUILD_CMDER |
|||
- ls |
|||
- mvn -version |
|||
- java -version |
|||
- mvn clean package -Dmaven.test.skip=true |
|||
- &SCP_TARGET /home/cloud/carbasics |
|||
- &SCP_SOURCE target/*.jar |
|||
- &SCP_STRIP_DIR_LEVEL 1 |
|||
- &SSH_CMDER |
|||
- cd /home/cloud/carbasics |
|||
- pwd |
|||
- ./carbasics.sh > /dev/null 2> /dev/null & |
|||
#- &NOTIFY_EMAIL weizezhao@ccsens.com |
|||
- &NOTIFY_WECHATROBOT_WEBHOOK https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b2b93e9a-128b-41d4-8dce-12004e3f48b9 |
|||
|
|||
# 挂载的主机卷,可以映射到docker容器中 |
|||
volumes: |
|||
- name: ssh_key |
|||
host: |
|||
path: /root/.ssh/ |
|||
- name: cache |
|||
host: |
|||
path: /var/lib/cache |
|||
|
|||
# 执行触发器 |
|||
trigger: |
|||
branch: |
|||
- master |
|||
- drone |
|||
|
|||
# 构建阶段 |
|||
steps: |
|||
- name: build-maven |
|||
image: maven:3.8.4-jdk-8 |
|||
pull: if-not-exists # default always |
|||
volumes: |
|||
- name: cache |
|||
path: /root/.m2 |
|||
commands: *BUILD_CMDER |
|||
|
|||
- name: deploy-scp |
|||
image: appleboy/drone-scp |
|||
pull: if-not-exists |
|||
volumes: |
|||
- name: ssh_key |
|||
path: /root/.ssh/ |
|||
settings: |
|||
host: *SERVER_HOST |
|||
port: *SERVER_PORT |
|||
username: root |
|||
key_path: /root/.ssh/id_rsa |
|||
rm: false # true则会删除目标目录重建 |
|||
target: *SCP_TARGET |
|||
source: *SCP_SOURCE |
|||
strip_components: *SCP_STRIP_DIR_LEVEL # 去除的目录层数,如果没有该选项,则拷贝过去是 target/xxx.jar,1代表去除target |
|||
|
|||
- name: run-ssh |
|||
image: appleboy/drone-ssh |
|||
pull: if-not-exists |
|||
volumes: |
|||
- name: ssh_key |
|||
path: /root/.ssh/ |
|||
settings: |
|||
settings: |
|||
host: *SERVER_HOST |
|||
port: *SERVER_PORT |
|||
username: root |
|||
key_path: /root/.ssh/id_rsa |
|||
script_stop: true # stop script after first failure |
|||
#command_timeout: 30s # 30seconds, the maximum amount of time for the execute commands, default is 10 minutes. |
|||
script: *SSH_CMDER |
|||
#- cd /home/cloud/carbasics |
|||
#- ./re.sh > /dev/null 2> /dev/null & |
|||
|
|||
- 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} 构建成功 |
|||
> Commit: [${DRONE_COMMIT_MESSAGE}](${DRONE_COMMIT_LINK}) |
|||
> Author: ${DRONE_COMMIT_AUTHOR} |
|||
> [点击查看](${DRONE_BUILD_LINK}) |
|||
{{else}} |
|||
#### ❌ ${DRONE_REPO} 构建失败 |
|||
> Commit: [${DRONE_COMMIT_MESSAGE}](${DRONE_COMMIT_LINK}) |
|||
> Author: ${DRONE_COMMIT_AUTHOR} |
|||
> 请立即修复!!! |
|||
> [点击查看](${DRONE_BUILD_LINK}) |
|||
{{end}} |
|||
when: |
|||
status: |
|||
- failure |
|||
- success |
|||
|
|||
# - name: notify-email |
|||
# image: drillster/drone-email |
|||
# pull: if-not-exists |
|||
# settings: |
|||
# host: smtp.qiye.aliyun.com #例如 smtp.qq.com |
|||
# port: 465 #例如QQ邮箱端口465 |
|||
# username: devops@ccsens.com #邮箱用户名 |
|||
# password: #邮箱密码 |
|||
# from_secret: orgsecret_password_mail_devops |
|||
# from: devops@ccsens.com |
|||
# recipients: *NOTIFY_EMAIL #收件人,多个用,隔开 |
|||
# when: #执行条件 |
|||
# status: |
|||
# - success |
|||
# - changed |
|||
# - failure |
|||
|
|||
# - name: notify-dingtalk |
|||
# image: lddsb/drone-dingtalk-message |
|||
# environment: |
|||
# PASSWORD: |
|||
# from_secret: password_mail_devops |
|||
# settings: |
|||
# token: your-dingtalk-robot-access-token |
|||
# type: markdown |
|||
# message_color: true |
|||
# message_pic: true |
|||
# sha_link: true |
|||
|
|||
# -name: notify-slack |
|||
# image: plugins/slack |
|||
# webhook: https://hooks.slack.com/ www.dijiuyy.com services/xxx/xxx/xxx |
|||
# channel: dev |
|||
# template: > |
|||
# {{#success build.status}} |
|||
# build {{build.number}} succeeded. Good job. |
|||
# {{else}} |
|||
# build {{build.number}} failed. Fix me please. |
|||
# {{/success}} |
Loading…
Reference in new issue