環境変数

環境変数(Env Var)は、ステップ入力に挿入することでビルドで使用できるデータを保持するキーと値のペアです。たとえば、アプリのリポジトリの作業ディレクトリは多くの場合Env Varに保存されるため、それを必要とするすべてのステップ入力のパスを指定する必要はありません。

アプリ全体または特定のワークフローに対して環境変数を構成できます。アプリレベルの環境変数は、アプリのすべてのワークフローで利用できます。ワークフローレベルの環境変数は、特定のワークフローでのみ使用できます。

シークレットは特定のタイプの環境変数です。シークレットは暗号化された形式で情報を非表示にし、その値はビルドログに公開されません。

機密情報を保護する

シークレットとは異なり、Env Varはプルリクエストによってトリガーされるビルドで完全に公開されるため、EnvVarに機密情報を追加しないでください。

環境変数の可用性の順序

環境変数(Env Var)は、EnvVarが処理された後に使用可能になります。

BitriseCLIによって公開されたEnvVarがあります。これらは最初から利用できます:たとえば、 BITRISE_SOURCE_DIRBITRISE_TRIGGERED_WORKFLOW_ID

他のすべてのEnvVarは処理され、ビルドが進むにつれて利用できるようになります。

処理順序は次のとおりです。

  1. BitriseCLIによって公開されたEnvVars。

  2. 秘密:ワークフローが開始する前に処理されます。

  3. APIを介してビルド用に指定された1回限りの環境変数。

  4. アプリ環境変数。

  5. ワークフロー環境変数:指定されたワークフローの処理が開始されると、そのワークフローに指定された環境変数が使用可能になります。

    ワークフローにワークフローがある場合 その前後に連鎖、チェーンワークフローの環境変数は、ワークフローの最初のステップが実行される直前に処理され、使用可能になります。

  6. ステップ入力:ステップが開始する直前に、ステップごとに公開されます。

  7. ステップ出力:特定のステップによって公開されるため、ステップの終了後に後続のステップで使用できます。

環境変数の設定

すべてのEnvVar値は文字列です

環境変数またはシークレットの値は文字列のみにすることができます。数値(たとえば7)を設定しても、文字列として渡されます。

$文字を使用する

あなたは使用することができます $ Env VarまたはSecretの値(パスワードなど)に文字が含まれていますが、その場合は常に 入力の変数を置き換えますか? 非アクティブに切り替えます。変数のキーを入力の値に置き換えると、Bitrise CLIはその値を別の環境変数として扱います。これは、 $ キャラクター。

新しい環境変数(環境変数)を設定するには:

  1. でアプリを開きます ビットライズ

  2. に移動します ワークフロー タブ。

  3. に移動します 環境変数 タブ。

  4. 環境変数のレベルを選択します。

    • 下にスクロールして アプリ環境変数 アプリレベルの環境変数を設定するセクション。

      Secrets and Env Vars
    • 下にスクロールして、 ワークフロー環境変数 その特定のワークフローの環境変数を設定するセクション。

      Secrets and Env Vars
  5. クリック 新しく追加する 選択したセクションのボタン。

  6. EnvVarキーをに入力します 入力フィールドと値を 価値 入力フィールド。

    入力の変数を置き換える

    を切り替えることはお勧めしません 入力の変数を置き換えますか? オプション、ただし EnvVarまたはSecretの値は別のEnvVarまたはSecretです

    このオプションを切り替えると、Env Varのキーの代わりに、EnvVarの値がビルドに渡されます。通常、これは必要ありません。

  7. クリック 保存する 右上隅にあります。

それでおしまい。新しいEnvVarが保存され、使用できるようになります。

ビルド開始時にカスタムEnv変数を設定する

新しいビルドをスケジュールする場合、または新しいビルドを手動で開始する場合は、カスタム環境変数(Env Var)を設定するオプションがあります。これらの変数は、開始またはスケジュールしたビルドでのみ使用できます。

App EnvVarと同じキーを使用しないでください

アプリの環境変数は、カスタムの環境変数よりも優先されます。つまり、App EnvVarと同じキーを使用してカスタムEnvVarを定義すると、ビルドはApp EnvVarの値を使用します。

  1. あなたのに行きます ダッシュボード 必要なアプリを選択します。

  2. 選択する ビルドの開始/スケジュール

    これにより、 ビルド構成 ポップアップウィンドウ。

  3. の中に ビルド構成 ポップアップウィンドウで、 高度 タブ。

  4. を見つける カスタム環境変数 セクション。

  5. キーと値を入力します。

    入力の変数を置き換える

    を切り替えることはお勧めしません 入力の変数を置き換えますか? オプション、ただし EnvVarまたはSecretの値は別のEnvVarまたはSecretです

    このオプションを切り替えると、Env Varのキーの代わりに、EnvVarの値がビルドに渡されます。通常、これは必要ありません。

  6. を押します +環境変数を追加 ボタン。

  7. ビルドの開始またはスケジューリングを終了します。

ステップ入力でのEnv変数の使用

多くの ステップ入力 環境変数(環境変数)を受け入れ、 秘密 入力値として。

敏感な入力

としてマークされた入力フィールド センシティブ シークレットのみを入力として受け入れます。通常、これらの入力の値を変更することはお勧めしません。

Env VarまたはSecretをステップ入力値として使用するには:

  1. でアプリを開きます ビットライズ

  2. に移動します ワークフロー タブ。

  3. からワークフローを選択します ワークフロー ドロップダウンメニュー。

  4. ワークフローからステップを選択します。たとえば、 Gitクローンリポジトリ ステップ。

  5. ステップ入力を選択します。たとえば、 クローン作成先(ローカル)ディレクトリパス の入力 Gitクローンリポジトリ ステップ。

  6. 入力の名前の横にあるをクリックします 変数を挿入

  7. リストからEnvVarを見つけて、選択します。

    キー(またはその一部)をに入力すると、EnvVarを検索できます。 キーでフィルタリング 検索フィールド。

    ステップによって生成された環境変数

    環境変数のインタラクティブリストには、ワークフローの前のステップで生成された環境変数が表示されます。たとえば、ワークフローの3番目のステップの入力の1つに環境変数を挿入する場合は、最初と2番目のステップで生成された環境変数から選択できます。

それでおしまい。次にそのワークフローのビルドを実行するとき、ステップ入力は挿入されたEnv変数の値をステップ入力値として使用します。

EnvVarの値でのEnvVarの使用

環境変数(Env Var)には通常、単純な文字列値が含まれています。ただし、他のEnvVarを値として含むEnvVarを設定することは可能です。

変数値としての秘密

ここで説明する方法は、 秘密。 EnvVar内にシークレットを埋め込むこともできます。

いつでも、Env Varの値に別の環境変数を使用できます。いわば、EnvVarを埋め込みます。たとえば、の値を設定するとします。 $BITRISE_AUTH Env Var to $PERSONAL_ACCESS_TOKEN これは別のEnv変数です。

これを行うには、次のキーを確認する必要があります $BITRISE_AUTH ワークフローとステップに渡される埋め込みEnv変数になるように、その値に置き換えられます。

  1. でアプリを開きます ビットライズ

  2. に移動します ワークフロー タブ。

  3. に移動します 環境変数 タブ。

  4. 必要なEnvVarのキーの下で、 入力の変数を置き換えますか? アクティブに切り替えます。

環境変数を公開し、別のステップまたはワークフローで使用する

1つのステップからEnvVarを公開し、ビルド中にステップの後に実行される他のすべてのステップで使用できるようにすることができます。あなたが使用することができます envman EnvVarsを管理します。

重要

このセクションでは、の構造と要件に精通している必要があります。 bitrise.yml 構成ファイル。

これは、キーを使用して新しいEnvVarを追加する簡単な例です。 MY_RELEASE_NOTE

envman add --key MY_RELEASE_NOTE --value "This is the release note"

あなたは呼び出すことができます envman スクリプトステップを含む任意のステップで、またはあなたがそれをから呼び出す場合はあなた自身のスクリプト(あなたのリポジトリに保存されている)でさえ bitrise 建てる。

値を次のように指定できます --value パラメータ、またはパイプを使用して:

echo 'hi' | envman add --key MY_RELEASE_NOTE

ファイルから値を読み取ることもできます。

envman add --key MY_RELEASE_NOTE --valuefile ./some/file/path

Env Varが公開されると、他のEnvVarと同じように使用できます。これらの公開されたEnv変数は、他のステップの入力でも使用できます。

これは、リリースノートのEnv Varを公開し、それを別の場所で使用する例です。 ScriptSend a Slack message ステップ。

workflows:
  example:
    steps:
    - script:
        inputs:
        - content: |
            #!/bin/bash
            envman add --key MY_RELEASE_NOTE --value "This is the release note"
    - script:
        inputs:
        - content: |
            #!/bin/bash
            echo "My Release Note: $MY_RELEASE_NOTE"
    - slack:
        inputs:
        - channel: ...
        - webhook_url: ...
        - message: "Release Note: $MY_RELEASE_NOTE"

別のEnvVarのキーを介してアクセスできるようにEnvVarの値を公開する場合は、そうすることができます。

たとえば、の値を公開するには BITRISE_BUILD_NUMBER キーの下 MY_BUILD_NUMBER

 envman add --key MY_BUILD_NUMBER --value "${BITRISE_BUILD_NUMBER}"

この後、後続のステップはの値を取得できます BITRISE_BUILD_NUMBER から MY_BUILD_NUMBER 環境変数の値を変更した場合 BITRISE_BUILD_NUMBER この後、の値 MY_BUILD_NUMBER 変更されることはなく、元の値を保持します。

カスタムEnvVarが定義されているかどうかを知る必要がある場合は、簡単に確認でき、値を上書きすることもできます。

#!/bin/bash
set -ex
if [ ! -z "$API_PROJECT_SCHEME" ] ; then
  envman add --key PROJECT_SCHEME --value "$API_PROJECT_SCHEME"
fi

このスクリプトは、 API_PROJECT_SCHEME Env Varが定義されており、定義されている場合、その値はに割り当てられます。 PROJECT_SCHEME 環境変数、の元の値を上書きします PROJECT_SCHEME

または、ワークフローの環境変数を設定することもできます。ワークフローに設定した環境変数は、アプリの環境変数またはアプリとして定義されている場合、環境変数を上書きします ひみつ

Env Varを定義し、それらのEnvVarを使用できる別のワークフローを実行するワークフローの例を次に示します。

workflows:

  deploy-alpha:
    envs:
    - ENV_TYPE: alpha
    after_run:
    - _deploy

  _deploy:
    steps:
    - script:
        inputs:
        - content: |
            #!/bin/bash
            echo "ENV_TYPE: $ENV_TYPE"

あなたが実行する場合 deploy-alpha ワークフロー、それは設定します ENV_TYPE Env Var to alpha、それからそれは実行されます deploy そのEnv変数を使用できるワークフロー。この例では、単にその値を出力します(印刷されるテキストは次のようになります: ENV_TYPE: alpha)。