GitHubにPushするとTravis CIでテストして結果をSlackに通知する設定をした

CI便利ですよね。職場では開発インフラチームがいい感じにしてくれています。今回は個人開発のプロジェクトにも導入したくなりました。 Travis CIをGitHubと・Slackに連携する方法を備忘のために説明します。

今回はGitHubのプライベートリポジトリをTravis CIと連携し、Pushしたタイミングでテストをして、結果をSlackに流すようにしました。

f:id:matsu7874:20190722014916p:plain

GitHubにリポジトリを作る

GitHubに連携したいリポジトリを作っておきましょう。

Travis CIをGitHub Apps登録をする

GitHub Apps Integrationというやつをします。 GitHubのPersonal settings/ApplicationsにTravis CIが追加されていることを確認できます。

f:id:matsu7874:20190722014506p:plain

連携するリポジトリを選択するか、アカウントに紐ついているもの全てにするかを選択することができます。 今回は先程作った該当リポジトリのみとしました。

SlackのTravis CIアプリを有効化

通知したいワークスペースでTravis CIアプリを有効化しましょう。 通知したいチャンネルを選んだ後で、yamlを修正してくれというメッセージが表示されます。クレデンシャルをそのまま書きたくないので、"Encrypting your credentials"の手順に沿って進めましょう。

travisコマンドのインストール

travisコマンドを使えるようにしましょう。Rubyは馴染みが無いですが、書かれている通り gem install travis -v 1.8.10 --no-rdoc --no-ri で完了です。

travis-ci/travis.rb: Travis CI Client (CLI and Ruby library)

.travis.yml をリポジトリに登録

Travis CIでは、yamlファイルで挙動を設定するようです。

今回は pip install でインストールする rimeを使いたかったので、下記ファイルをプロジェクト直下に保存しました。

dist: bionic
language: python
cache: bundler
python:
- '3.7'
install:
- pip install -r requirements.txt
script:
- rime test
notifications:
  slack:
    secure: いかにもな文字列

notifications.slack.secureの部分は自動的に作成してくれます。

script の結果がbuildの結果として返してくれるようです。

f:id:matsu7874:20190722014505p:plain

通知が飛んでくることを確認しましょう。