6.5 KiB
Drone CI的钉钉群组机器人通知插件
目前仅支持 text, markdown 以及 link 类型的消息,建议使用markdown类型。
怎么使用本插件
添加一个step到你的.drone.yml中,下面是简单的例子:
0.8.x
pipeline:
...
notification:
image: lddsb/drone-dingtalk-message
token: your-group-bot-token
type: markdown
1.0.x
kind: pipeline
name: default
steps:
...
- name: notification
image: lddsb/drone-dingtalk-message
settings:
token: your-groupbot-token
type: markdown
插件参数
token(必须)
你可以通过加入和创建一个群组来添加钉钉自定义机器人,添加自定义机器人完成后即可获得所需要的access token。
type(必须)
消息类型,因个人能力有限,目前仅支持markdown和text,其中,使用markdown可以获得最好的体验。
tpl
你可以通过该字段来自定义你的消息模版。该字段可以是一个本地路径也可以是一个远程的URL。
tips_title
你可以通过该字段自定义钉钉机器人的消息通知提醒标题。(注意,不是消息内容的标题,是收到钉钉机器人发的消息后,会有一个外显的标题)
success_color
你可以通过该字段自定义打包成功的颜色。比如:008000。
failure_color
你可以通过该字段自定义打包失败的颜色。比如:FF0000。
success_pic
你可以通过该字段自定义打包成功的图片。
failure_pic
字符串,你可以通过该字段自定义打包失败的图片。
tpl_commit_branch_name
你可以通过该字段自定义分支的名称,可以在模版中通过[TPL_COMMIT_BRANCH]来使用该值。
tpl_repo_short_name
你可以通过该字段自定义仓库的名字,可以在模版中通过[TPL_REPO_SHORT_NAME]来使用该值。
tpl_repo_full_name
你可以通过该字段自定义仓库的全名(包含组织名称),可以在模版中通过[TPL_REPO_FULL_NAME]来使用该值。
tpl_build_status_success
你可以通过该字段自定义运行成功状态的值,可以在模版中通过[TPL_BUILD_STATUS]来使用该值。(仅当前方step运行结果为成功时该值会生效)
tpl_build_status_failure
你可以通过该字段自定义运行失败状态的值,可以在模版中通过[TPL_BUILD_STATUS]来使用该值。(仅当前方step运行结果为失败时该值会生效)
模版
tpl对link类型的消息并不支持 !!!
感天动地,我们终于支持自定义模版了!下面是一个markdown的自定义模版例子:
# [TPL_REPO_FULL_NAME] build [TPL_BUILD_STATUS], takes [TPL_BUILD_CONSUMING]s
[TPL_COMMIT_MSG]
[TPL_COMMIT_SHA]([TPL_COMMIT_LINK])
[[TPL_AUTHOR_NAME]([TPL_AUTHOR_EMAIL])](mailto:[TPL_AUTHOR_EMAIL])
[Click To The Build Detail Page [TPL_STATUS_EMOTICON)]]([TPL_BUILD_LINK])
你可以写自己喜欢的模版,终于不用再对着默认模版发愁啦!并且模版的语法非常简单!比较可惜的是目前支持的变量还比较少,下面是当前支持的变量的列表:
| Variable | Value |
|---|---|
| [TPL_REPO_SHORT_NAME] | current repo name(bare name) |
| [TPL_REPO_FULL_NAME] | the full name(with group name) of current repo |
| [TPL_REPO_GROUP_NAME] | the group name of current repo |
| [TPL_REPO_OWNER_NAME] | the owner name of current repo |
| [TPL_REPO_REMOTE_URL] | the remote url of current repo |
| [TPL_BUILD_STATUS] | current build status(e.g., success, failure) |
| [TPL_BUILD_LINK] | current build link |
| [TPL_BUILD_EVENT] | current build event(e.g., push, pull request, etc.) |
| [TPL_BUILD_CONSUMING] | current build consuming, second |
| [TPL_COMMIT_SHA] | current commit sha |
| [TPL_COMMIT_REF] | current commit ref(e.g., refs/heads/master, etc.) |
| [TPL_COMMIT_LINK] | current commit remote url link |
| [TPL_COMMIT_BRANCH] | current branch name(e.g., dev, etc) |
| [TPL_COMMIT_MSG] | current commit message |
| [TPL_AUTHOR_NAME] | current commit author name |
| [TPL_AUTHOR_EMAIL] | current commit author email |
| [TPL_AUTHOR_USERNAME] | current commit author username |
| [TPL_AUTHOR_AVATAR] | current commit author avatar |
| [TPL_STATUS_PIC] | custom pic for build status |
| [TPL_STATUS_COLOR] | custom color for build status |
| [TPL_STATUS_EMOTICON] | custom emoticon for build status |
截图展示
- 发送成功(Drone Web)
- 忘记填写Access Token(Drone Web)
- 忘记填写消息类型或者不支持的消息类型
- 默认的
markdown消息
- 带颜色和链接的
markdown消息
- 带颜色、链接和图片的
markdown消息
贡献代码
本项目使用了go mod来管理依赖,因此要编译本项目相当简单。
- 先把项目代码拷贝到本地
$ git clone https://github.com/lddsb/drone-dingtalk-message.git /path/to/you/want
- 然后直接执行编译即可
$ cd /path/to/you/want && GO111MODULE=on go build .
- 跑个
help
$ ./drone-dingtalk-message -h
待办
- 实现更多的消息类型





