Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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指定するだけで通知できたので楽ちんだった

halnique
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away