2

我们在drone.io 0.4 中的松弛通知工作得很好,但是由于我们更新到 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

根据文档,松弛现在在管道(以前构建)级别内缩进。

我试着像以前一样改变,只通过无人机 cli 使用这个slack秘密,在那里我也尝试过其他事情。notifySLACK_WEBHOOK

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

4

2 回答 2

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 文件并将签名文件提交到您的存储库。然后,您可以在类似于 0.4 的 yaml 中引用您的秘密,但语法略有不同:

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

于 2017-03-27T14:10:42.380 回答
0

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

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

when:
  status: [ success, failure ]

不过,这实际上在入门指南中提到了,但我直到最后都没有完成,因为我的目标是快速启动并运行它并且不担心我认为是边缘情况。

于 2017-03-28T13:12:35.233 回答