drone.io 0.5 slack不再工作

时间:2017-03-27 13:39:43

标签: slack drone drone.io

我们在drone.io 0.4工作时发出了松散的通知,但是自从我们更新到0.5后,尽管我试用了documentation,但我还是无法正常工作。

之前,就像这样

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现在在管道(先前构建)级别中缩进。

我尝试将slack更改为notify,就像之前一样,仅通过无人机cli使用SLACK_WEBHOOK秘密以及我尝试过的其他内容。

有谁知道我可能做错了什么?

2 个答案:

答案 0 :(得分:2)

这是一个(几乎完全)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

答案 1 :(得分:0)

问题是在0.4中,通知插件位于管道范围之外(然后构建),现在从0.5开始位于管道内部。这与管道发生故障时立即退出范围这一事实相结合,这意味着slack(然后notify)步骤永远不会再到达。

解决方案是明确告诉它使用when命令执行失败步骤:

when:
  status: [ success, failure ]

这实际上是在入门指南中提到的,但我没有经历直到最后,因为我的目标是快速启动并运行并且不担心我考虑的内容是边缘案例。