前準備
- Travis CIで対象リポジトリを自動ビルドする
- Slackに通知先となるchannelを作る
Travis CI設定
SlackのTravis CI integrationのSetup Instructions
に従って進める。
一番簡単にやると
-
Integration Settings
のPost to Channel
に通知先channelを記載する -
.travis.yml
に以下を記載する
notifications:
slack: <team name>:<token>
tokenはIntegration Settings
のToken
欄に記載されている。
ただ、このままだとpublicなリポジトリの場合はtokenが誰にでも見えてしまう。
Your integration token is semi-secret, but we recommend encrypting your credentials using the Travis command line client.
ということらしいので、以下の手順に従ってtokenを暗号化する。
Encryption keys - Travis CI
https://docs.travis-ci.com/user/encryption-keys/
travisのパッケージをインストール(ビルドに ruby-dev
/ruby-devel
が必要)
$ sudo gem install travis
token暗号化付きコマンドを実行する:
travis encrypt "<Slack team name>:<Slack API token>" --add notifications.slack
Building native extensions. This could take a while...
ERROR: Error installing travis:
ERROR: Failed to build gem native extension.
/usr/bin/ruby2.1 extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
ヘッダが無いと怒られたのでインストール。
$ sudo apt install ruby-dev
再実行し成功すると.travis.yml
に以下のSlack通知項目が追記される:
notifications:
slack:
secure:
XXX/XXX...
リポジトリの情報を見ているようなので、各リポジトリで個別に実行する必要あり
最後に対象リポジトリに.travis.yml
をコミットする。
通知結果
正しく通知設定がされている状態でビルドが成功すると↓のようにSlackチャンネルに通知してくれる: