コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

CircleCI上のマシンで環境変数を扱う場合はContextsを使うと便利

デプロイのCircleCIを使っているなどの場合、結構あると便利なのでメモ

環境

version: 2

Contextとは

日本語テキストがあるので抜粋すると

コンテキストは、環境変数を保護し、プロジェクト間で共有するためのメカニズムを提供します。 環境変数は、名前・値のペアとして定義され、実行時に挿入されます。 - コンテキストの使用 - CircleCI

という機能

使い方

環境変数の設定

CircleCI上のUIから設定をする。 場所は Settings ページの ORGANIZATIONContexts

f:id:shinkufencer:20190707170603p:plain
ORIGANIZATIONなのでPROJECTではない点に注意

Create Context ボタンを押すとContextの名前の入力を求められるので入力して作成

f:id:shinkufencer:20190707170648p:plain
この名前をyamlに設定するので英語推奨

作成したContextのページに行くと環境変数を追加できるので追加する。

f:id:shinkufencer:20190707170726p:plain
リンクができるので詳細ページへ

f:id:shinkufencer:20190707170753p:plain
ここから環境変数を追加する

f:id:shinkufencer:20190707170819p:plain
環境変数名と値を設定する。値はマスクがかかるので打ち間違えに注意

config.yml上の書き方

利用したいworkflowにcontextを使用する

workflows:
  test-workflow:
    jobs:
      - test:
        context: SAMPLE

利用シーン

主にはworkflowごとに必要な環境変数が変わる場合で活躍して

  • ステージング/本番でデプロイ作業を分けている場合
  • テストコード実行時のみ必要な変数がある場合

などのシーンで便利

参考リンク