Skip to main content

環境変数

概要

環境変数(Env Var)は、ステップ入力に挿入することでビルドで使用できるデータを保持するキーと値のペアです。

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

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

環境変数リストと個々の環境変数のサイズ制限

デフォルトでは、環境変数リストのサイズは 120 KB です。これで説明されているように、スクリプト ステップを使用してリスト サイズを簡単に増やすことができます。 ナレッジ ベースの記事.

環境変数のデフォルトのサイズ制限は 20 KB です。これに従って、スクリプトステップを使用してこの制限を増やすことができます ナレッジベースの記事.

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

機密情報を保護する

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

環境変数の範囲

ユーザーは、3 つの異なるレベルで環境変数を宣言できます。

  • アプリレベル。

  • ワークフロー レベル。

  • ステップレベル。

自動的に公開される環境変数

ユーザーが宣言した環境変数に加えて、Bitrise CLI または bitrise.io によって自動的に公開される環境変数があります。これらは、どのビルドでも常に使用できます。これらのリストは次の場所にあります。 利用可能な環境変数

アプリ レベルの環境変数 特定のアプリのすべてのビルドで使用できます。たとえば、新しいワークフローを作成すると、すぐに、すべてのアプリ レベルの環境変数に自動的にアクセスできるようになります。

ワークフロー レベルの環境変数 定義された特定のワークフローでのみ使用できます。 primary ワークフローには、キーを持つ環境変数があります TEST_ENV、 君の deploy ワークフローはその環境変数にアクセスできません。

ワークフローの連鎖

もし、あんたが ワークフローを連鎖させるafter_run パラメータを設定し、ワークフローの 1 つで環境変数を定義すると、チェーン内の後続のすべてのワークフローがその環境変数にアクセスできるようになります。

ステップ レベルの環境変数 ビルドの特定のステップ内で定義されます。このような環境変数は、他のワークフローや、同じワークフロー内の前のステップでは使用できません。ただし、後続のステップはそれにアクセスできます。ステップ出力は、環境変数としても公開されます。

レベルに関係なく、ワークフロー エディターとアプリの両方で環境変数を設定できます。 bitrise.yml ファイル、またはカスタム スクリプトを使用したビルド中に、 環境人 道具:

環境変数には、そのレベルに基づいて特定の処理順序があります。 環境変数の可用性の順序

環境変数の可用性の順序

環境変数(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. クリック ワークフロー メインページのボタン。

    opening-workflow-editor.png
  3. に移動します 環境変数 タブ。

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

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

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

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

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

    入力の変数を置き換える

    すべての環境変数には、 is_expand 財産。 UI では、これは次のように表されます。 入力内の変数を置き換えますか? トグル。そうでない限り、これを有効にすることはお勧めしません。 環境変数またはシークレットの値が別の環境変数またはシークレットです

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

    新しい環境変数を直接追加する場合は、 bitrise.yml ファイルを設定しないでください。 is_expand プロパティのデフォルト値は次のようになります true。明示的に設定することをお勧めします is_expand この場合:

    envs:
      - opts:
          is_expand: false
          KEY: VALUE
    
  7. クリック 保存する 右上隅にあります。

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

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

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

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

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

  1. 上の ビットライズCI アプリのページで、 ビルドを開始 ボタンをクリックし、その横にあるドロップダウンメニューを開いて、 スケジュール構築

    schedule-build.png
  2. の中に ビルド構成 ポップアップウィンドウで、 高度 タブ。

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

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

    入力の変数を置き換える

    すべての環境変数には、 is_expand 財産。 UI では、これは次のように表されます。 入力内の変数を置き換えますか? トグル。そうでない限り、これを有効にすることはお勧めしません。 環境変数またはシークレットの値が別の環境変数またはシークレットです

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

    新しい環境変数を直接追加する場合は、 bitrise.yml ファイルを設定しないでください。 is_expand プロパティのデフォルト値は次のようになります true。明示的に設定することをお勧めします is_expand この場合:

    envs:
      - opts:
          is_expand: false
          KEY: VALUE
    
  5. を押します +環境変数を追加 ボタン。

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

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

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

敏感な入力

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

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

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

  2. クリック ワークフロー メインページのボタン。

    opening-workflow-editor.png
  3. クリック edit-webhook.svg ワークフロー名の横にあるボタンをクリックします。

  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. クリック ワークフロー メインページのボタン。

    opening-workflow-editor.png
  3. に移動します 環境変数 タブ。

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

ビルド中の環境変数の設定と管理

ステップで環境変数を定義することにより、ビルド中に環境変数を設定できます。 脚本 ステップ。これを行うには、 環境人 道具。

新しい環境変数は次のステップから有効になります

で作成する環境変数 envman ツールは、ワークフローの後続のステップからのみ有効になります。つまり、新しく作成された環境変数を、それが作成された同じステップで使用することはできません。

これは、私たちが使用している簡単な例です envman キーで新しい環境変数を追加するには 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変数は、他のステップの入力でも使用できます。

これは、リリース ノートの環境変数を公開し、それを別の環境変数で使用する例です。 脚本 ステップイン Slack メッセージを送信する ステップ:

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

bitrise.yml で環境変数を設定する

環境変数を直接設定できます bitrise.yml アプリの構成ファイル。アプリの構成ファイルで、アプリ レベルとワークフロー レベルの両方の環境変数を設定できます。

この例では、アプリレベルの Env Var を持つ構成があります。 TEST_KEY:

app:  
  envs:  
  - opts:      
      is_expand: false    
    TEST_KEY: test value

入力の変数を置き換える

すべての環境変数には、 is_expand 財産。 UI では、これは次のように表されます。 入力内の変数を置き換えますか? トグル。そうでない限り、これを有効にすることはお勧めしません。 環境変数またはシークレットの値が別の環境変数またはシークレットです

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

新しい環境変数を直接追加する場合は、 bitrise.yml ファイルを設定しないでください。 is_expand プロパティのデフォルト値は次のようになります true。明示的に設定することをお勧めします is_expand この場合:

envs:
  - opts:
      is_expand: false
      KEY: VALUE

この例では、 deploy-alpha ワークフローは、と呼ばれる環境変数を定義します ENV_TYPEを実行し、その環境変数を使用できる別のワークフローを実行します。

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)。