3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Jenkinsのビルド後にMattermostに投稿する

Posted at

やりたいこと

セキュリティ的なアレで社内ではSlackが利用できないのでMattermostを利用しています。
開発経験が浅いメンバが多く、平気でコンパイルエラーになるソースコードをコミットしてくるので、Jenkinsでビルドエラーになった場合、Mattermostに自動でお叱りの投稿ができるようにしたいです。

Jenkinsにプラグインを追加する

JenkinsにMattermost Notification Pluginを追加します。
https://plugins.jenkins.io/mattermost

インターネットにつながる環境であればJenkinsのプラグインマネージャから追加できると思いますが、今回の環境はセキュリティ的なアレでつなががりません。(忌々しい・・・)
そのため、上記URLからhpiファイルをダウンロードし、Jenkinsのpluginsディレクトリに取得したhpiファイルを配置、再起動を行いプラグインを追加しました。

MattermostにIncoming Webhookを登録する

外部システムからMattermostに投稿するための設定を行います。
チーム名の横にある点々をクリックしてメニューを表示し、「統合機能」を選択します。(英語だとIntegrationとかだと思います。)
image.png

以下のような画面が出てくると思うので、「内向きのウェブフック」をクリックします。(英語だとIncoming Webhookとかだと思います。)
image.png

そこに、Webhookを新規作成するボタンがあるので、そこから作成します。
作成されたウェブフックのURLは後程利用します。

また、Mattermostのシステムコンソールから「統合機能によるユーザ名の上書きを許可する」を有効にしておきます。
image.png

Jenkinsの設定を行う

システムの設定からGlobal Mattermost Notifier Settingsの項目を設定します。

項目 設定内容
Endpoint 先ほど作成した内向きのウェブフックのURL
Channel 投稿するチャンネル。「ユーザ名@チャンネル名」と設定すれば、ユーザ名を指定できる。ユーザ名を省略した場合は、ウェブフックを作成したユーザとして投稿される。
Icon to use 投稿する際のアイコンのURL。省略すればウェブフックデフォルトのアイコンになる。
Build Server URL ビルドサーバ(Jenkins)のURL。

上記を入力した後、TestConnectionボタンを押して成功すれば設定完了です。(Mattermostにテストメッセージが投稿されるので注意。)
また、上記はジョブごとに設定することもできます。

Jenkinsのジョブを作成する

ビルド後の処理として、「Mattermost Notification」が追加できるようになっています。
通知するタイミングをチェックボックスで選択できます。今回は「Notify Failure」にしました。
高度な設定から「Include custom message」を定義すれば、投稿する内容をカスタマイズできます。
また、「Notify Repeated Failure」にチェックを入れておけば、連続で失敗した場合にも、その都度投稿が行われます。
(デフォルトでは、初回のみ投稿されます。)


以上でJenkinsからMattermostに投稿することができます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?