Skip to content
Latchkey

CIにおける環境変数とは?

CIの環境変数とは、jobのプロセスに提供される名前付きの値で、動作をハードコードせずに設定するために使われます。

buildやスクリプトは、どのregistryを使うか、どのbuildモードか、feature flagなどの設定を環境から読み取ります。CIはこれらの変数を複数のレベルで定義でき、同じworkflowがbranch、environment、matrixのセルをまたいで正しく動作するようにします。

設定方法

変数はworkflow、job、stepのレベルで設定でき、スクリプトでは $NAME として読み取れます。matrixの値や計算されたoutputも、多くの場合、環境変数として流れ込みます。

小さな例

jobレベルで env: NODE_ENV: production を設定すると、そのjobのすべてのstepが本番モードでbuildします。単一のstepは、一度きりのテストbuildのために独自の env: ブロックでそれを上書きできます。

変数とsecret

通常の環境変数は機密ではなく、ログに現れます。secretは暗号化されマスクされます。buildモードのような設定は変数、トークンはsecretです - 認証情報を通常の変数に入れないでください。

優先順位とスコープ

  • stepレベルの値はjobレベルを上書きし、jobレベルはworkflowレベルを上書きします。
  • 変数はそれを設定した実行にスコープされ、永続しません。
  • 一部のプラットフォームには、機密でない共有設定用にorgやrepoの「variables」があります。

step間で値を渡す

あるstepで通常の export で設定した変数は、新しいshellで実行される次のstepには引き継がれません。値を永続させるには、代わりにプラットフォームの環境ファイルに書き込みます(例えば $GITHUB_ENV に追記する)。

重要なポイント

  • 環境変数は名前でjobのプロセスを設定します。
  • 変数は機密でない設定用、secretは認証情報用です。
  • 狭いスコープが広いスコープを上書きし、値はデフォルトでは永続しません。

関連ガイド