travis-ci を projects のいずれかに使用したいと思います。
このプロジェクトはAPIラッパーであるため、テストの多くはシークレットAPIキーの使用に依存しています。ローカルでテストするには、それらを環境変数として保存するだけです。 Travisでこれらのキーを使用する安全な方法は何ですか?
Travisには、環境変数を暗号化する機能があります( "Encrypting environment variables" )。これは、シークレットAPIキーを保護するために使用できます。これをHeroku APIキーに使用できました。
必要なことは、travis gemをインストールし、必要な文字列を暗号化して、暗号化された文字列を.travis.yml
。暗号化は1つのリポジトリに対してのみ有効です。 travis
コマンドは、リポジトリの公開キーを取得し、ビルド中に文字列を解読できます。
gem install --user travis
travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo
これにより、次の出力が得られます。
Please add the following to your .travis.yml file:
secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="
シークレットを定義することもできます リポジトリ設定の変数 :
リポジトリ設定で定義された変数はすべてのビルドで同じであり、古いビルドを再起動すると、最新の値が使用されます。これらの変数は、フォークでは自動的に使用できません。
リポジトリ設定で変数を定義します:
- リポジトリごとに異なります。
- サードパーティの資格情報などの機密データが含まれます。
リポジトリ設定で変数を定義するには、ログインしていることを確認し、問題のリポジトリに移動し、歯車メニューから「設定」を選択し、「環境変数」セクションの「新しい変数を追加」をクリックします。
別のAPIキーセットを使用し、同じ方法で実行します。 travisボックスはビルド実行用にセットアップされ、ビルドが終了すると再び完全に解体されます。ビルド中にボックスへのルートアクセス権があるため、ボックスで何でもできます。