Drone CI 中文文档

Bash 插件示例

这提供了一个简短的教程,用于创建 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