2017-03-27 1 views
2

drone.io 0.4で動作するスラック通知がありましたが、0.5にアップデートして以来、documentationを試しても動作しません。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を変更しようとしましたが、SLACK_WEBHOOKの秘密は無人機でしか使用できませんでした。他のものも試してみました。

誰かが私が間違っているかもしれないことを知っていますか?

答えて

2

これは私が飛び出し、あなたの例では何も多分に、残念ながらありません資格情報

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ですあなたの本当のyamlの設定を表すかどうかわからないけど、タイプミスがあるチャンネル名は除きます。

秘密を使用しようとしている場合(あなたはyamlに署名する必要があります)署名ファイルをリポジトリにコミットします。その後、0.4と同様のYAMLではなく、わずかに異なる構文であなたの秘密を参照することができます:あなたはhttp://readme.drone.io/usage/secret-guide/

で秘密についての詳細を読むことができます

pipeline: 
    build: 
    image: golang 
    commands: 
     - go build 
     - go test 

    slack: 
    image: plugins/slack 
    webhook: ${SLACK_WEBHOOK} 
    when: 
     status: [ success, failure ] 

またにコマンドラインから直接プラグインを呼び出すことができますさまざまな入力値をテストするのに役立ちます。これはデバッグに役立ちます。 https://github.com/drone-plugins/drone-slack#usage

+0

ありがとう、私はwebhookの置換を試みましたが、私は私のdrone.ymlファイルに署名しました。 「when」部分が必要なのかもしれません。私はそれを試してみる –

+0

また、 'continuous_integratio'はチャンネルの綴り方(おそらく名前の長さの制限のため)です –

+0

失敗時にステップを実行する場合は、いつ/ステータスが必要です。ドローンは失敗時にパイプラインを直ちに終了し、それ以外の場合は実行しません。 –

0

この問題は、0.4でnotifyプラグインがパイプラインの範囲外にあり(ビルドされた)、パイプラインの内側にあるため0.5になっていたことが問題でした。これは、パイプラインに障害が発生したときに即座にスコープを終了するという事実と相まって、slack(then notify)のステップにはもう到達できません。

これを解決するには、単に明示的whenコマンドを使用して、失敗した場合にステップ実行するために、それを伝えることです:これは実際にかかわらず、乗車開始ガイドに記載されている

when: 
    status: [ success, failure ] 

を、私はしませんでした私はすぐにそれを稼働させることを目指していたので、終わりまで通り過ぎて、私が最悪のケースであると考えていたことを心配しなかった。

関連する問題