我们在 0.4 中运行了松弛通知 drone.io 很好,但由于我们更新到 0.5,尽管尝试了文档,但我无法让它工作。
以前是这样的
build:
build and deploy stuff...
notify:
slack:
webhook_url: $$SLACK_WEBHOOK_URL
channel: continuous_integratio
username: drone
你可以在这里看到我用$$来引用旧的特殊的无人机配置文件。
现在我的最新尝试看起来像这样
pipeline:
build and deploy stuff...
slack:
image: plugins/slack
webhook: https://hooks.slack.com/services/...
channel: continuous_integratio
username: drone
根据文档,松弛现在在管道(以前构建(级别内缩进。
我尝试像以前一样将slack
换成notify
,仅通过无人机 cli 以及我尝试的其他事情使用SLACK_WEBHOOK
秘密。
有谁知道我可能做错了什么?
这是我在启用松弛通知的情况下使用的(几乎完全一样(yaml,除了我已经屏蔽了凭据
pipeline:
build:
image: golang
commands:
- go build
- go test
slack:
image: plugins/slack
webhook: https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ
when:
status: [ success, failure ]
不幸的是,您的示例中没有任何内容跳出来,也许除了频道名称有拼写错误(尽管我不确定这是否代表您的真实 yaml 配置(
如果您尝试使用机密(通过 cli(,则需要确保对 yaml 文件进行签名并将签名文件提交到存储库。然后,您可以在 yaml 中引用您的密钥,类似于 0.4,但语法略有不同:
pipeline:
build:
image: golang
commands:
- go build
- go test
slack:
image: plugins/slack
webhook: ${SLACK_WEBHOOK}
when:
status: [ success, failure ]
您可以在 http://readme.drone.io/usage/secret-guide/阅读有关机密的更多信息
您还可以直接从命令行调用插件,以帮助测试不同的输入值。这有助于调试。见 https://github.com/drone-plugins/drone-slack#usage
问题是在 0.4 中,通知插件位于管道范围之外(然后构建(,现在从 0.5 开始它位于管道内部。再加上当管道失败时,它会立即退出范围,这意味着slack
(然后是notify
(步骤永远不会再到达。
对此的解决方案是仅显式告诉它使用 when
命令在失败时执行步骤:
when:
status: [ success, failure ]
不过,这实际上在入门指南中提到过,但我直到最后都没有完成,因为我的目标是快速启动并运行它,并且不担心我认为是边缘情况。