LoginSignup
0
0

More than 3 years have passed since last update.

Travis CIからSlackに通知する際の認証情報の暗号化(travis encrypt)について

Posted at

TL;DR

  1. .travis.ymlに直トークン書きたくないからtravis encryptしたい
  2. Travis「Travis CLI 使ってね」っ gem install travis
  3. このプロジェクトrubyじゃないし、ローカルにもruby入ってない…

というときに、rubyのDockerイメージを使ってアプリケーションに影響なくサクッとやりたい

準備

実践したのはmac + Docker for Mac環境ですが、Docker使えれば大丈夫なはずです

  • macOS 10.14.5
  • docker 18.09.2

想定プロジェクト

  • GitHubで管理されている
  • travis-ci.comでCIを回している
  • アプリケーションルートに.travis.ymlがある

手順

$ cd /path/to/project
$ docker run -it --rm --volume $(pwd)/:/app ruby bash
# cd app
# gem install travis
# travis login --com --github-token XXXXXXXX
# travis encrypt "xxxxxx:XXXXXXXX" --add notifications.slack --com
# exit

--comオプションについて

travis-ci.comを使ってるので--comオプションつけましたが、travis-ci.orgな場合はオプション無しでよいのかもしれません(未検証)

--github-tokenオプションについて

GitHubで二段階認証を有効化している場合は、Personal access tokenを発行して指定する必要があります
GitHub > Settings > Developer settings > Personal access tokens から発行できます
必要なスコープはrepo, user:emailだと思われます
有効化していない場合は--github-tokenオプションなしでやれば、普通にuser/passの認証がされるのでそれで大丈夫だと思われます(未検証)

travis encryptコマンドの部分はSlackのTravisアプリ画面の「セットアップの手順」に書いてあるのでコピーしちゃえば大丈夫です

上記うまくいけば.travis.ymlに暗号化された認証情報が追記されているはずなので、コミットしちゃえばOK

+notifications:
+  slack:
+    secure: XXXXXXXXXXXXXXXX...

まとめ

Circle CIは設定ファイルじゃなくWeb上の設定画面でWebhookのURL指定するだけで通知できたので楽ちんだった

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0