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 install -Dmaven.test.skip=true - &SCP_TARGET /home/cloud/tall3 - &SCP_SOURCE signin/target/*.jar - &SCP_STRIP_DIR_LEVEL 2 - &SSH_CMDER - cd /home/cloud/tall3 - pwd - ./tall3.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: - yanyuan - 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/tall3 #- ./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}}