LoginSignup
8
4

More than 3 years have passed since last update.

JenkinsとSlackの連携方法(2019年12月現在)

Last updated at Posted at 2019-12-19

概要

jenkinsci/slack-pluginにアップデートがあり、タイトルの内容でググると良く出てくる参考になりそうな記事では以下のように設定内容が異なります。

とても紛らわしく、本家に以下のIssueを作り、フィードバッグをもらってようやく理解できて連携できまして笑
Response: null, Response Code: 404 and Response: {"ok":false,"error":"invalid_auth"} #649

なので今回、JenkinsとSlackの最新の連携方法をまとめていきます。

古いバージョン

https___qiita-image-store.s3.amazonaws.com_0_215847_ebc4bba1-d28f-652e-4f2d-3fe4b9b863b1.jpeg
※詳細:JenkinsとSlack連携

https___qiita-image-store.s3.amazonaws.com_0_10605_5e260d5f-4787-a994-fa28-82a6b4ce1b26.jpeg
※詳細:Jenkinsおじさんビルド結果Slackに通知して

現在

スクリーンショット 2019-12-18 15.05.30.png
※詳細:jenkinsci/slack-plugin

環境

  • OS
    • macOS 10.15.1
  • Jenkins
    • 2.190.2
  • slack-plugin
    • 2.35
  • Maven
    • 3.6.3
  • Java
    • 11.0.2

前提知識

連携方法の大枠を知っておかないと初見ですぐ理解するのは難しいかもしれません。
過去の記事やjenkinsci/slack-pluginを確認しておくことをオススメします。

what "legacy"?

いろいろ調べているとレガシーと読んでいる解説がちょくちょく見られます。
これは上記の古いバージョンのjenkinsci/slack-pluginを指しており、現在はJenkins CIだけでは連携できないようになっております。

Jenkins CI

Jenkinsのジョブの結果を通知させたいSlackにこれまでJenkins CIを導入し、トークンが発行され、以前まではこれをもとにJenkinsとSlackを連携できていました。

ですが現在のバージョンでは使用せず、Custom Slack Appを作成してJenkins専用のBotを各自で作成する必要があるようです。

スクリーンショット 2019-12-19 17.36.07.png
スクリーンショット 2019-12-19 17.36.39.png
スクリーンショット 2019-12-19 17.36.54.png
スクリーンショット 2019-12-19 17.37.11.png

※Jenkinsの設定画面をよく見ると上記の古いバージョンと同じでそもそも参考にならない笑汗

Custom Slack App

api.slack.comにアクセスし、「Start Building」をクリックしてボットを作っていきます。

「Create a Slack App」にBotアカウントの名前とWorkspaceの指定を決めていきます。

スクリーンショット 2019-12-19 17.43.58.png

次にBotsとPermissions、Botのアイコンなどを決めていきます。
ちなみにこの画面で表示されている「App Credentials」の情報でIDやTokenなどの情報がありますが、今回は一切使いません。

スクリーンショット 2019-12-19 17.44.50.png

スクリーンショット 2019-12-19 17.45.51.png

Registration

ここからはjenkinsci/slack-pluginのREADMEにも書かれている内容になります。

Botアカウント作成

Bot Userにアクセスし、正式にBotアカウントを作成しました。

スクリーンショット 2019-12-19 15.32.54.png

認証や承認など

次にOAuth & Permissionsにアクセスし、OAuth Tokens & Redirect URLsScopesに設定を行なっていきます。

「Install App」をクリックし、BotとWorkspaceの紐付けを承認します。
このときのアイコンは、Display Informationページ上で設定したアイコンになります。

スクリーンショット 2019-12-19 15.17.24.png

Bot User OAuth Access Tokenの内容をコピーし、このトークンがJenkins CIのトークンの代わりになります。
コピーしたトークンをJenkins -> システム設定 -> Slack配下にあるCredentialの追加からSecret textSecretにペーストして認証情報を発行し、そのままCredentialに設定しておきます(このへんの設定は以前と同じ)。

スクリーンショット 2019-12-19 15.17.53.png

Scopesには公式で解説されている次の設定を行います。

スクリーンショット 2019-12-19 15.18.11.png

次に通知したいチャンネルにBotアカウントを追加します。
(もしJenkins CIを追加してたら以下スクショのように紛らわしい状況になります笑)

スクリーンショット 2019-12-19 15.21.26.png

これでJenkins -> システム設定 -> Slack配下にあるTest Connectionをクリックすると次のように成功すると思います。

スクリーンショット 2019-12-19 15.37.35.png

スクリーンショット 2019-12-19 15.32.23.png

もしBotアカウントの追加が忘れていると次のようにエラーになります。

スクリーンショット 2019-12-19 15.19.51.png

ビルド後の処理 -> Slack Notifications

これで完了になります、お疲れ様でした。

スクリーンショット 2019-12-19 18.17.37.png

スクリーンショット 2019-12-19 15.57.56.png

 

8
4
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
8
4