サーバーの現状
これまで以下の作業を終えた状態。
-
Jenkinsのインストールと初期設定
さくらのVPSにjenkinsをインストールして、テストOKで自動デプロイする環境を構築する(1) -
GitHubにPushしたらJenkins動かす
さくらのVPSにjenkinsをインストールして、テストOKで自動デプロイする環境を構築する(2) -
GithubにPushしたらサーバーに自動デプロイ
さくらのVPSにjenkinsをインストールして、テストOKで自動デプロイする環境を構築する(3)
今回やること
目指す完成形でいう
6.テスト結果をSlackのプロジェクトチャンネルに通知
の作業をします。
実現方法
今回もjenkinsのプラグインに「Slack Notification Plugin」があるので、ありがたく使わせていただきます。
作業
先に個人用にSlackのチーム作っておいた。
チャットサービスのはずなんだけど、ずっと一人運用するってどうなんだろう?
Slackの設定
IntegrationsからJenkins CIを設定する。
- IntegrationsにJenkinsさんがいるので選択
- 適当に通知するchannelを選択して設定(通知するchannelはjenkins側でジョブ毎に設定可能)
- Jenkinsへの設定の仕方が丁寧にスクショ付きで表示されるのでこれに従う。
- 発行されるtokenをコピーしておく
Jenkinsさんの設定
Slackで表示された通りの流れで設定する。
プラグイン入れて、基本設定を行ってジョブに通知先と内容を設定する。
- 「Jenkinsの管理」の「プラグインの管理」を表示して
「利用可能」タブから「Slack Notification Plugin」を検索してインストールする。 - 「Jenkinsの管理」から「システムの設定」を表示
- 「Global Slack Notifier Settings」が増えてるので「Domain」と「token」を入れて保存。
URLはデフォでjenkinsのURLが入力されている。 - 通知を行いたいジョブの設定画面を開く
- 「Slack Notifications」の項目が増えてるので「高度な設定」をクリック。
- 通知したい内容にチェックする。
- Team Domain,Integration Token,Project Channel(#から入れる)を設定する。
- 「Test Connection」をクリックしてテスト。問題なければSlackに書き込みがある。
- 「ビルド後処理の追加」で「Slack Notifications」を選択する。
- 設定を保存。
- 試しにビルド実行。以下のように通知される。
何かしら失敗すると左の緑が赤くなる。
GitHubからPushした際は、前回テストから今回取り込んだCommit内容も一式表示されるので
どのCommitのテストか分かりやすい。
最低限の目指していた開発環境完成!
さくらのVPS借りて開発するうえで先にやっておきたい最低限の環境が整いました。
slackにはこれ以外にもいろんな通知系の情報を集約していきます。
実務だとサーバー監視系とかいいんですが、個人のVPS1台だけ監視通知してもね…
次はhubotも入れて遊ぼうかな。
- ローカルのVagrant上で開発
- GitHubにPush(gitflow形式で運用)
- GitHubに設定するwebhookでjenkinsに通知
- jenkinsさんがGitHubからソース落とす
- jenkinsさんがテスト走らせる
- テスト結果をSlackのプロジェクトチャンネルに通知
- テストOKで該当環境のDocumentRoot上にデプロイ
今回のシリーズ
さくらのVPSにjenkinsをインストールして、テストOKで自動デプロイする環境を構築する(1)
さくらのVPSにjenkinsをインストールして、テストOKで自動デプロイする環境を構築する(2)
さくらのVPSにjenkinsをインストールして、テストOKで自動デプロイする環境を構築する(3)
追記
さらにLaravel&behatでテスト走らせる設定を行いました。
Laravel5.1でbehatを使ってjenkinsで自動テストする