前準備
- 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チャンネルに通知してくれる:
