パイプラインの変数
Bitbucket Pipelines では、既定の変数のセットに加え、独自の変数を定義する機能が提供されます。パスワード、トークン、およびその他の値のセキュリティを強化するため、変数をセキュアなものとしてマークできます。
「スラッグとは」も参照してください。
パイプラインのリファレンス変数
変数は、ビルド コンテナの環境変数として設定されています。Bitbucket-pipelines.ymlファイルか、次の方法で変数を参照して呼び出す任意のスクリプトから変数にアクセスすることができます。
$AWS_SECRET
ここで AWS_SECRET
は変数の名前です。
デフォルトの変数
Bitbucket Pipelines は、ビルドで利用でき、スクリプトでも使用可能な一連の既定の変数を提供します。
同じ名前の変数を指定してデフォルトの変数をオーバーライドすることができます。
既定の変数 | 説明 |
---|---|
CI
| 既定値は true です。パイプラインが実行されるたびに設定されます。 |
BITBUCKET_BUILD_NUMBER | ビルドの一意の識別子。ビルドごとに増え、一意のアーティファクト名の作成に使用できます。 |
BITBUCKET_CLONE_DIR | Docker コンテナ内でのリポジトリのクローン先のディレクトリの絶対パス。 |
| ビルドを開始したコミットのコミット ハッシュ値。 |
BITBUCKET_WORKSPACE | リポジトリが所属するワークスペースの名前。 |
BITBUCKET_REPO_SLUG | リポジトリ名の URL 用の名前。詳細については、「スラッグとは」を参照してください。 |
BITBUCKET_REPO_UUID | リポジトリの UUID。 |
BITBUCKET_REPO_FULL_NAME | リポジトリの完全な名前 (http://bitbucket.org/ に続くすべての文字)。 |
BITBUCKET_BRANCH | ソース ブランチ。この値はブランチ上でのみ利用可能です。 タグまたはカスタム パイプラインのビルドでは使用できません。 |
BITBUCKET_TAG | ビルドを開始したコミットのタグ。この値はタグでのみ使用できます。 ブランチのビルドでは使用できません。 |
BITBUCKET_BOOKMARK
| Mercurial プロジェクトで使用します。 |
BITBUCKET_PARALLEL_STEP | グループ内の現在のステップのゼロベース インデックス。例: 0、1、2、... 並行ステップでのみ使用できます。 |
BITBUCKET_PARALLEL_STEP_COUNT | グループ内のステップの合計数。例: 5。 並行ステップでのみ使用できます。 |
BITBUCKET_PR_ID | プル リクエスト ID プル リクエストでトリガーされたビルドでのみ利用可能です。 |
BITBUCKET_PR_DESTINATION_BRANCH | プル リクエストの宛先ブランチ ( プル リクエストでトリガーされたビルドでのみ利用可能です。 |
BITBUCKET_GIT_HTTP_ORIGIN | オリジンの URL。例: http://bitbucket.org/<account>/<repo> |
BITBUCKET_GIT_SSH_ORIGIN | SSH オリジン。例: git@bitbucket.org:/<account>/<repo>.git |
| ステップの終了コードは after-script セクションで使用できます。値は 0 (成功) または 1 (失敗) になります。 |
ユーザー定義変数
変数は、アカウント レベル、リポジトリ、およびデプロイ環境のレベルで、追加、編集、または削除できます。既存の変数と同じ名前を使用した場合、それをオーバーライドできます。オーバーライドの順序は、デプロイメント > リポジトリ > アカウント > デフォルト変数です。各デプロイ環境は独立しているので、各環境で同じ変数名に別の値を使用できます。
名前には ASCII 文字、数字、およびアンダースコアのみを含めることができます。
名前では大文字と小文字が区別されます。
名前の先頭を数字にすることはできません。
変数に改行を含めることはできません。改行を含む変数が必要な場合は、base64
または openssl
コマンドを使用して変数をエンコードし、出力を環境変数に追加します。次に、bitbucket-pipelines.yml
ファイル内で変数をデコードしてスクリプトで使用できるようにします。
チームと個人アカウントの変数
チームまたは個人アカウントに指定した変数は、そのチームやアカウントに所属するすべてのリポジトリからアクセスすることができます。チームの変数を管理するには管理者で必要があります。
チームまたは個人アカウントの変数を管理するには:
- 左下のアバターからワークスペースを選択します。
- 変数を設定したい個人アカウントまたはチームを選択します。
- 左側のメニューで [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 エンコーディングなど) の照合を行います。