パイプラインの変数

Bitbucket Pipelines では、既定の変数のセットに加え、独自の変数を定義する機能が提供されます。パスワード、トークン、およびその他の値のセキュリティを強化するため、変数をセキュアなものとしてマークできます。また、パイプラインを手動で実行する際に変数を更新することもできます。

パイプラインのリファレンス変数

変数は、ビルド コンテナの環境変数として設定されています。bitbucket-pipelines.yml ファイルか、次のような、先頭に $ を追加して呼び出す任意のスクリプトから変数にアクセスすることができます。

$AWS_SECRET

ここで AWS_SECRET は変数の名前です。

デフォルトの変数

Bitbucket Pipelines は、ビルドで利用でき、スクリプトでも使用可能な一連の既定の変数を提供します。

同じ名前の変数を指定してデフォルトの変数をオーバーライドすることができます。

既定の変数説明
CI 既定値は true です。パイプラインが実行されるたびに設定されます。
BITBUCKET_BOOKMARKMercurial プロジェクトで使用します。
BITBUCKET_BRANCH

ソース ブランチ。この値はブランチ上でのみ利用可能です。

タグに対するビルドや、コミットからトリガーされたパイプラインでは使用できません。

BITBUCKET_BUILD_NUMBERビルドの一意の識別子。ビルドごとに増え、一意のアーティファクト名の作成に使用できます。
BITBUCKET_CLONE_DIR

Docker コンテナ内でのリポジトリのクローン先のディレクトリの絶対パス。

BITBUCKET_COMMITビルドを開始したコミットのコミット ハッシュ値。
BITBUCKET_DEPLOYMENT_ENVIRONMENTステップのデプロイ先の環境の名前。デプロイメント ステップでのみ利用可能です。
BITBUCKET_DEPLOYMENT_ENVIRONMENT_UUID

ステップのデプロイ先の環境の UUID。デプロイメント ステップでのみ利用可能です。

BITBUCKET_EXIT_CODEステップの終了コードは after-script セクションで使用できます。値は 0 (成功) または 1 (失敗)のになります。
BITBUCKET_GIT_HTTP_ORIGINオリジンの URL。例: http://bitbucket.org/<account>/<repo>
BITBUCKET_GIT_SSH_ORIGINSSH オリジン。例: git@bitbucket.org:/<account>/<repo>.git
BITBUCKET_PARALLEL_STEP

グループ内の現在のステップのゼロベース インデックス。例: 0、1、2、...

並行ステップでのみ使用できます。

BITBUCKET_PARALLEL_STEP_COUNT

グループ内のステップの合計数。例: 5。

並行ステップでのみ使用できます。

BITBUCKET_PR_DESTINATION_BRANCH

プル リクエストの宛先ブランチ (BITBUCKET_BRANCH と組み合わせて使用)

プル リクエストでトリガーされたビルドでのみ利用可能です。

BITBUCKET_PR_IDプル リクエスト ID
プル リクエストでトリガーされたビルドでのみ利用可能です。
BITBUCKET_PROJECT_KEYリポジトリが所属するプロジェクトのキー。
BITBUCKET_PROJECT_UUIDリポジトリが所属するプロジェクトの UUID。
BITBUCKET_REPO_FULL_NAMEリポジトリの完全な名前 (http://bitbucket.org/ に続くすべての文字)。
BITBUCKET_REPO_OWNERリポジトリが所属するアカウントの名前。
BITBUCKET_REPO_OWNER_UUIDリポジトリが所属するアカウントの UUID。
BITBUCKET_REPO_SLUGリポジトリ名の URL 用の名前。詳細については、「スラッグとは」を参照してください。
BITBUCKET_REPO_UUIDリポジトリの UUID。
BITBUCKET_STEP_RUN_NUMBERパイプラインごとのステップの実行回数。
BITBUCKET_STEP_TRIGGERER_UUIDステップ実行をトリガーしたユーザーの UUID.
BITBUCKET_TAG

ビルドを開始したコミットのタグ。この値はタグでのみ使用できます。

ブランチのビルドでは使用できません。

ユーザー定義変数

変数は、アカウント レベル、リポジトリ、およびデプロイ環境のレベルで、追加、編集、または削除できます。既存の変数と同じ名前を使用した場合、それをオーバーライドできます。オーバーライドの順序は、デプロイメント > リポジトリ > アカウント > デフォルト変数です。各デプロイ環境は独立しているので、各環境で同じ変数名に別の値を使用できます。

  • 名前には ASCII 文字、数字、およびアンダースコアのみを含めることができます。
  • 名前では大文字と小文字が区別されます。
  • 名前の先頭を数字にすることはできません。
  • 変数に改行を含めることはできません。改行を含む変数が必要な場合は、base64 または openssl コマンドを使用して変数をエンコーディングし、出力を環境変数に追加します。次に、bitbucket-pipelines.yml ファイル内で変数をデコードしてスクリプトで使用できるようにします。

チームと個人アカウントの変数

前提条件:

  • チームまたは個人アカウントの変数には、チームまたはアカウントに所属するリポジトリ (非公開または公開) への書き込み権限を持つすべてのユーザーがアクセスできます。
  • 変数を管理するには、アカウントまたはリポジトリの管理者である必要があります。必要なレベルの権限がない場合、メニュー オプションは表示されません。
  • チームまたは個人アカウントに指定した変数は、そのチームやアカウントに所属するすべてのリポジトリからアクセスすることができます。チームの変数を管理するには管理者で必要があります。
  • チームまたは個人アカウントの変数は、リポジトリ変数によって上書きすることができます。

手順:

チームまたは個人アカウントの変数を管理するには:

  1. 左下のアバターから、[Bitbucket settings] をクリックします。
  2. 変数を設定したい個人アカウントまたはチームを選択します。
    設定ドロップダウンの画像
  3. 左側のメニューで [Pipelines] > [アカウント変数] に移動します。

リポジトリ変数

リポジトリ レベルで追加された変数には、リポジトリのプッシュ権限を持つユーザーがアクセスできます。これらの変数はチーム変数をオーバーライドします。

[設定] > [Pipelines] > [リポジトリ変数] でリポジトリ変数を管理できます

デプロイ変数

特定のデプロイ環境でのみ使用されるように変数を定義できます。デプロイ変数はチーム変数とリポジトリ変数の両方をオーバーライドし、各環境に固有です。

手順:

デプロイ変数を管理するには、[設定] > [Pipelines] > [デプロイメント] に移動します

デプロイを特定のブランチや管理者に制限することもできます。その場合、デプロイ権限を持つユーザーのみがこれらのデプロイ変数を使用できます。

保護された変数

変数は保護することができます。保護した変数はスクリプトで使用できますが、その値はビルド ログでは非表示になります (以下の例を参照してください)。保護された変数を編集したい場合、新しい値を指定するか削除する必要があります。保護された変数は、暗号化された値として保存されます。変数を保護するには、南京錠のアイコンをクリックします。

保護を設定する南京錠のイメージ

保護された変数のマスキング

Pipelines はセキュアな変数をマスクし、ビルド ログを表示するチーム メンバーに表示されることがないようにします。セキュアな変数と一致する値がログに表示された場合、Pipelines はその値を $VARIABLE_NAME と置き換えます。

これにより、保護された変数が正常に機能しているかどうかが一見してわかりづらくなる可能性があります。次のような例で説明します。

最初に、5 の値を持つ保護された変数 MY_HIDDEN_NUMBER を作成します。

次に、この bitbucket-pipelines.yml ファイルを使用しました。

pipelines:
  default:
    - step:
        script:
          - expr 10 / $MY_HIDDEN_NUMBER
          - echo $MY_HIDDEN_NUMBER

変数の値は、スクリプトで使用することはできますが、ログには公開されません。変数名 $MY_HIDDEN_NUMBER と置き換えられます。

保護されている変数を使用するログの例

: 出力の生成方法に関わらず、ログ ファイルに保護された変数の値が出力される場合、それらはすべて Pipelines によってマスクされます。

保護された変数の値を一般的な用語に設定している場合、それがログ ファイルに表示される際には必ず変数名で置き換えられます。保護された変数は一意の認証トークンやパスワードで使用するために設計されているため、クリア テキストで使用される用語と重複する可能性は考慮されていません。

また Pipelines は、URL で変数を使用する際にそれらが表示されるのを防ぐため、変数の値について、複数の基本的なエンコーディング (URL エンコーディングなど) の照合を行います。

手動パイプラインへの変数の追加

カスタム パイプラインを実行する際に変数を追加または更新すると便利なことがあります (バージョン番号の指定、1 回のみ使用する値の提供など)。

前提条件:

  • 同じ名前のリポジトリまたはアカウント変数オーバーライドします。
  • 値を入力しない場合、変数は空 (値が "") になります。
  • 値は一時的です (パイプラインを再実行することはできず、既存の変数が変更されることはありません)。
  • これらの変数は保護されておらず、既存のセキュアな変数をオーバーライドした場合もログに表示されます。

手順:

手動での変数の更新を有効にするには、起動時に入力したい変数をカスタム パイプラインで定義します。

pipelines:
  custom:
    custom-name-and-region: #name of this pipeline
      - variables:			#list variable names under here
          - name: Username
          - name: Region
      - step: 
          script:
            - echo "User name is $Username"
            - echo "and they are in $Region"

次に、[ブランチ] > [...] > [ブランチのパイプラインを実行] > [カスタム] でカスタム パイプラインを実行し、それらを入力できます。

入力可能なカスタム変数ポップアップの図

最終更新日 2019 年 7 月 2 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.