这提供了一个简短的教程,用于创建 Drone WebHook 插件,使用简单的 shell 脚本,在构建流水线中发出 http 请求。下面的例子展示了我们如何在 Yaml 文件中配置一个 WebHook 插件。
1
2
3
4
5
6
7
8
9
10
11
12
|
kind: pipeline
type: docker
name: default
steps:
- name: webhook
image: acme/webhook
settings:
url: http://hook.acme.com
method: post
body: |
hello world
|
创建一个简单的 shell 脚本,使用 Yaml 中定义的插件设置来调用 curl,这些设置作为环境变量以大写字母传递给脚本,并以 PLUGIN_
为前缀。
1
2
3
4
5
6
|
#!/bin/sh
curl \
-X ${PLUGIN_METHOD} \
-d ${PLUGIN_BODY} \
${PLUGIN_URL}
|
创建一个 Docker 文件,将你的 shell 脚本添加到镜像中,并将镜像配置为执行你的 shell 脚本作为主要入口。
1
2
3
4
5
|
FROM alpine
ADD script.sh /bin/
RUN chmod +x /bin/script.sh
RUN apk -Uuv add curl ca-certificates
ENTRYPOINT /bin/script.sh
|
建立并发布你的插件到 Docker 注册表。一旦发布,你的插件就可以与更广泛的 Drone 社区共享。
1
2
|
docker build -t acme/webhook .
docker push acme/webhook
|
在本地从命令行执行你的插件,以验证它是否工作。
1
2
3
4
5
|
$ docker run --rm \
-e PLUGIN_METHOD=post \
-e PLUGIN_URL=http://hook.acme.com \
-e PLUGIN_BODY=hello \
acme/webhook
|