Hiroto's diary

プログラミング関連を書くかも

Travis CIでTwitter APIを用いたアプリのテストをする

HkApps (https://github.com/Hiroto-K/HkApps)では色々とTwitter APIを使っています。ソースコードGitHubに置いてあるのでCIはTravis CIを使ってますが、Twitterのコンシューマーキーを.envに書き込む必要があったのでメモ。

Travis CIのセット方法は書きません。

travisをインストール

事前にRubyGemsからtravisをインストール。どうせならこれもhubコマンドみたいにGoで書いて欲しいと思った

gem install travis

travisコマンドを使って暗号化

このコマンドをgitリポジトリのルートでやるとGitHubリポジトリを自動で判別してくれるのでリポジトリのルートで実行する。

travis encrypt CK=CK CS=CS OT=OT OS=OS

実行時の画面(--addオプションを使えば追加もしてくれるらしい、知らなかった)

Detected repository as Hiroto-K/HkApps, is this correct? |yes|
Please add the following to your .travis.yml file:

  secure: "暗号化キー"
Pro Tip: You can add it automatically by running with --add.

.travis.ymlにキーを追加

さっきの画面に出てきた暗号化キーを追加する。

env:
  global:
    secure: "暗号化キー"

bashを使って.envに書き込む

.travis.ymlbefore_scriptに書いてもいいけどYAMLのヒアドキュメントは面倒。なのでbashスクリプトを書いて適当な場所に置いてbefore_scriptから実行して書き出す。HkAppsの場合は.ciディレクトリに置いた。

.ci/set_env.sh

#!/bin/sh

str=$(cat <<- EOS
TWITTER_CK=${CK}
TWITTER_CS=${CS}
TWITTER_AT=${OT}
TWITTER_AS=${OS}
EOS
)

echo "${str}" >> .env

.travis.yml

before_script :
  # 処理
  - bash .ci/set_env.sh
  # 処理

© 2015-2017 Hiroto-K