Help us understand the problem. What is going on with this article?

Hubot に Jenkins のビルド通知を流す

More than 5 years have passed since last update.

前提

  • Hubot の設定ができていること
  • Jenkins の設定ができていること
  • Jenkins と Hubot は同一ホストで動いてるものとする(別ホストにするのも大して手順は変わらないはず)

準備

Jenkins プラグイン

Web 管理画面から Jenkins の Notification Plugin をインストールしておく。

Hubot の hubot-jenkins-notifier

npm install --save hubot-jenkins-notifierhttps://www.npmjs.com/package/hubot-jenkins-notifier をインストールする。

external-scripts.json
[
  "hubot-jenkins-notifier"
]

設定

Hubot の設定

PORT 環境変数で 5080 ポートで HTTP の待ち受けをするようにしておく(Jenkins のデフォルトと競合するため)

Job の設定

Notification Plugin を入れると、ジョブ設定の最初の方に Notification の設定が追加される。
(最初はビルド後の処理かと思って見つからずにパニクってました)

Add Endpoint をクリックし、

なんか、Logに0を入れているとうまくいかないです。

room_id は例によってアダプタ依存なので適当に。notstrat は@ITの記事を参考に。

Log パラメータで Webhook に対してビルドログを送信できるっぽいのだが、Hubot の hubot-jenkins-notifier が対応していない様子。

hubot-jenkinsを入れると Hubot に命令して Jenkins のジョブ実行とかもできるみたいだけど、それは今回は見送りとしようかな・・・

追記:Let's Chat の絵文字を使って見やすくする

そのままだと「build #1 succeeded:」とか「#2 started failing:」とかしか言ってくれないのでぱっと見に分かりにくい。そこで、絵文字一覧の中から青丸と赤丸を使って一目瞭然となるように改造してみよう。

node_modules/hubot-jenkins-notifier/src/scripts/hubot-jenkins-notifier.coffee
    if data.build.phase in ['FINISHED', 'FINALIZED']
      if data.build.status == 'FAILURE'
        if data.name in @failing
          build = "is still"
        else
          build = "started"
        @robot.send envelope, ":red_circle: #{data.name} build ##{data.build.number} #{build} failing: #{fullurl}" if @shouldNotify(envelope.notstrat, data)
        @failing.push data.name unless data.name in @failing
      if data.build.status == 'SUCCESS'
        if data.name in @failing
          build = "was restored"
        else
          build = "succeeded"
        @robot.send envelope, ":large_blue_circle: #{data.name} build ##{data.build.number} #{build}: #{fullurl}"  if @shouldNotify(envelope.notstrat, data)
        index = @failing.indexOf data.name
        @failing.splice index, 1 if index isnt -1

必要なところに:red_circle::large_blue_circle:を足しただけ。これだけでずいぶん見やすくなる。

kounoike
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした