Jenkins × Slack 実行結果を通知して
概要
Jenkinsでジョブの実行結果をログインして調べるのって面倒ですよね。今回は僕も私もやってみたい「Jenkins × Slack」です。紳士にSlackへ実行結果を通知してもらいましょう。
環境
- Windos 10
- Jenkins 2.46.3
- Slack
- Slack Notification Plugin 2.2
Slackを設定する
Slackのメニューから[Apps & Integrations]を選択します。
「jenkins ci」を検索。
[Install]を選択。
既存のチャンネルを選択するか、[create a new channel]から新しいチャンネルを作成します。
今回は新しく#jenkins
チャンネルを作成しました。
先ほどの画面に戻り#jenkins
を選択して、[Add Jenkins CI integration]を押下。
設定情報の[Token]はJenkinsの設定で使うのでコピーしておきましょう。
Jenkinsを設定する
プラグインの設定
[Jenkinsの管理]-[システムの管理]より[Global Slack Notifier Settings]で設定していきます。
[Team Subdomain]は以下の例での「example」の部分を入力。
https://example.slack.com/, your subdomain is 'example'.
[Integration Token]はSlack側で生成されたTokenを入力して、[Integration Token Credential ID]を[なし]にすれば接続できると思います。ただ、警告にあるようにセキュリティリスクがあるようなので、[Integration Token Credential ID]を使ってみます。
[Integration Token Credential ID]の追加を押下し、Jenkins Credentials Prviderで[種類]を[Secret text]に変更し、[Secret]にSlackのTokenを入力します。IDは適当な名前を入力し、[追加]を押下。
[Integration Token]を空にして、[Integration Token Credential ID]は先ほど追加したIDを選択します。[Test Connection]を押下してSuccessと表示されれば、Slack側に通知がでます。
テスト接続の通知はこんな感じ。
ジョブの設定
通知させたいジョブの[設定]より、[ビルド後の処理の追加]で[Slack Notifications]を追加します。通知させたい内容にチェックを入れて保存しましょう。
[高度な設定]では、テストのサマリーやジョブ毎の設定にオーバーライドができるようです。
実行結果
それではビルド実行してみましょう。
対象のチャンネルにJenkinsからの通知が来ました!
設定が簡単なのがわかったので、実際のプロジェクトでも連携させてみたくなりますね。
あー、職場にSlack導入されないかなぁ。
[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
- 作者: 佐藤聖規,和田貴久,新井雄介,米沢弘樹,山岸啓,岩成祐樹,川口耕介
- 出版社/メーカー: 技術評論社
- 発売日: 2017/05/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
Jenkins でGitHubと連携して.NETアプリケーションをビルドするときにパッケージを復元する
概要
言いたいことは全部タイトルで言った!
つーことで、GitHubから.NETのアプリケーションをCloneして、ビルドしようとしたらNuGetのパッケージが見つからないので復元するとこまでやってみました。
環境
- Windos 10
- Jenkins 2.46.3
- Visual Studio Community 2017
- NuGet v4.1.0
Jobの設定
ソースコード管理
Gitを選択して、リポジトリURLに適当なリポジトリを入力します。PublicリポジトリをCloneするだけなので認証情報はなし。ブランチはmasterで。
GitHubのリポジトリは仕事で久しぶりにVB.NETを書くことになったので練習がてらに作ったどうでもいいやつです。[Clone or download]のとこでコピー。
実行結果
ワークスペースにソースコードがCloneされて、足りないパッケージも復元されました!
ビルドとユニットテストも通って青玉でました。ここにたどり着くまでにTry and Errorで19回もビルド実行しているのがバレバレ( ^Д^)σ
sh-yoshida.hatenablog.com
sh-yoshida.hatenablog.com
sh-yoshida.hatenablog.com
Jenkins でMSBuildと単体テストをジョブ実行する
概要
「MSBuildでコマンドラインからビルドする」、「VSTest.Consoleでコマンドラインからテストを実行する」とやってきたので、今回はJenkinsでビルド・テスト実行を行ってみたいと思います。
sh-yoshida.hatenablog.com
sh-yoshida.hatenablog.com
環境
- Windos 10
- Jenkins 2.46.3
- Visual Studio Community 2017
Jenkins
JenkinsとはJavaで書かれたオープンソース継続的インテグレーションツールである。
https://ja.wikipedia.org/wiki/Jenkins
Jenkinsのインストールは省略します。ダウンロードしてウィザードに従い進めていけばokです。私の環境はC:\Jenkins
にインストールしました。
jenkins.io
Jobの作成
それでは、[新規ジョブ作成]よりJobを作成していきます。ジョブ名は適当に「MyJob」で。[フリースタイル・プロジェクトのビルド]を選択しました。
[ビルド手順の追加]で[Windowsバッチコマンドの実行]を選択します。
Windowsバッチコマンドの実行
これでコマンド入力ができるので、前にやったMSBuildとVSTest.Consoleのコマンドをそれぞれ登録して保存、ビルド実行で出来ました!ハイ終わり!つーのもあれなので、プラグインを使ってみます。
Plugin
[Jenkinsの管理]-[プラグインの管理]から以下のプラグインをインストールしました。インストールができたら、それぞれ設定していきましょう。
- MSTest plugin
- VSTest Runner plugin
Pluginの設定
[Jenkinsの管理]-[Global Tool Configuration]で出来ます。初見でネットで調べてたらシステムの設定でできるって書いてあったけど無くてはまりました。UIが変わったタイミングだったのかな。
MSBuildは名前とexeのパスを登録しておきました。パスはexeの指定なし。
c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
VSTestも名前とパスですが、こちらはexeまで指定。なんか警告でてるけど。。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe
これでPluginの準備ができたので、ジョブの設定に戻りましょう。
Jobの実行結果
[ビルド実行]ボタンを押下して実行した結果、うまく行きました♪
workspaceにビルドログとテスト結果も出力されてます。