本教程的目的是以我们的 Golang 项目模板为基础,建立一个自定义的 WebHook Receiver。一个 WebHook Receiver 是一个小型的 HTTP 服务器,用于接收和处理 WebHooks。
本教程假定你有 Go 编程语言的工作知识。你还需要安装boilr,这是一个脚手架系统,用于从模板生成新的代码项目。
创建项目
Drone 提供了脚手架,用于从项目模板创建新的 WebHook Receiver。我们将使用这个模板启动我们的项目。
-
安装 WebHook 模板:
1
boilr template download drone/boilr-webhook drone-webhook
-
创建一个新的 WebHook 项目:
1
boilr template use drone-webhook my-webhook-receiver
自定义代码
生成的项目创建了一个简单的服务器,能够接收、验证和解析请求。你只需要修改 plugin.Deliver
函数以包括你的自定义处理逻辑。
|
|
构建你的 Docker 镜像
生成的项目包括一个 Dockefile
,你可以用它来构建和发布镜像。你将需要更新 Dockerfile 的入口。
-
建立你的二进制文件:
1
GOOS=linux CGO_ENABLED=0 go build
-
建立并发布你的 Docker 镜像:
1 2
docker build -t my-webhook-receiver . docker push my-webhook-receiver
启动 WebHook Receiver
-
创建一个用于签署 HTTP 请求的共享密钥:
1 2
$ openssl rand -hex 16 bea26a2221fd8090ea38720fc445eca6
-
启动 WebHook Receiver:
1 2 3 4
$ docker run \ -p 3000:3000 \ -e DRONE_SECRET=bea26a2221fd8090ea38720fc445eca6 \ my-webhook-receiver
启用 WebHooks
一旦 WebHook Receiver 运行,你将需要向你的 Drone Server 提供 WebHook 端点和密钥。
|
|