パイプラインの開始条件

これらのオプションによって、パイプラインの開始条件を制御できます。パイプラインの開始を特定の条件に制限すると (プル リクエストが作成またはアップデートされた場合のみなど)、チームが使用するビルド時間数を削減できます。

パイプラインは、次のようなさまざまな条件下で開始するように設定できます。

  • コミットが任意のブランチにプッシュされたときに実行する — 既定の開始条件。

  • コミットが指定されたブランチにプッシュされたときに実行する — ブランチ開始条件。

  • プル リクエストが作成またはアップデートされ、指定されたブランチをターゲットにしたときに実行する — プル リクエスト開始条件。

  • Git タグが作成されたときに実行する — タグ開始条件。

  • ユーザーにより手動で開始されたときに実行する — カスタム開始条件。

パイプラインの開始条件

Pipelines は、次のオプションを使用して条件付きで開始するように設定できます。

Pipelines プロパティ

pipelines プロパティは、リポジトリのビルド プロセスを定義するために使用されます。パイプラインの開始条件とパイプラインのステップが含まれます。pipelines プロパティは必須で、リポジトリごとに 1 回のみ定義する必要があります。

プロパティpipelines

必須 — はい

データ タイプ — ブロック (YAML 仕様 - ブロック マッピング)

指定可能な親プロパティ — YAML ルート (pipelines は必ず最上位のプロパティとなります)

指定可能な子プロパティdefaultbranchespull-requeststagscustom プロパティが 1 つ以上必要です。

例 — pipelines プロパティを使用して、基本的なパイプラインを作成する

1 2 3 4 5 6 pipelines: default: - step: name: Hello world example script: - echo "Hello, World!"

既定

他のセクションのパイプライン定義に一致しないすべてのブランチのパイプライン定義が含まれます。

ブランチ固有のパイプラインが定義されている場合を除き、既定のパイプラインはリポジトリへのプッシュ (タグ プッシュは除く) のたびに実行されます。ブランチ パイプラインは branches セクションで定義できます。

コミットをプッシュしてパイプラインのトリガーをスキップしたい場合は、[skip ci] または [ci skip] をコミット メッセージに追加できます。

プロパティdefault

必須 — いいえ

データ タイプstepstage、または parallel プロパティのリスト (YAML 仕様 - シーケンス)

指定可能な親プロパティpipelines

指定可能な子プロパティstepstage、または parallel プロパティが 1 つ以上必要です。

例 — default プロパティを使用して、基本的なパイプラインを定義する

1 2 3 4 5 6 pipelines: default: - step: name: Hello world example script: - echo "Hello, World!"

例 — branches プロパティと default プロパティを併用する

次の例は、既定のパイプラインを定義し、hotfix/ がプレフィックス付けされたブランチにプッシュされた変更がないときに実行する方法を示しています。

1 2 3 4 5 6 7 8 9 10 11 12 pipelines: branches: hotfix/*: - step: name: Build hotfix branch script: - echo "Hello, hotfix!" default: - step: name: All other builds script: - echo "Hello, World!"

ブランチ

すべてのブランチ固有のビルド パイプラインを定義します。このセクションの名前または表現は、Git リポジトリのブランチと一致します。ブランチの照合に glob パターンを使用できます。glob パターンを使用してブランチ名を照合する方法の詳細については「Pipelines の yaml ファイルで glob パターンを使用する」をご確認ください。

コミットをプッシュしてパイプラインのトリガーをスキップしたい場合は、[skip ci] または [ci skip] をコミット メッセージに追加できます。

プロパティbranches

必須 — いいえ

データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)

指定可能な親プロパティpipelines

指定可能な子プロパティ — 内部でネストされた stepstage、または parallel 要素を使用した、候補のブランチ名を照合するユーザー定義の glob パターン

例 — branches プロパティを使用して、ブランチベースのパイプラインを定義する

リポジトリには、その bitbucket-pipelines.yml に次の Bitbucket Pipelines 構成があります。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 image: node:lts pipelines: default: - step: script: - echo "This script runs on all branches that don't have any specific pipeline assigned in 'branches'." branches: main: - step: script: - echo "This script runs only on commit to the main branch." feature/*: - step: image: openjdk:8 # This step uses its own image script: - echo "This script runs only on commit to branches with names that match the feature/* pattern."

main ブランチに基づく次の 2 つのブランチがリポジトリにプッシュされた場合

  • feature/BB-123-fix-links — 機能開発ブランチ

  • experimental — 実験的または革新的な変更を含むブランチ

各ブランチのルート ディレクトリに同じ bitbucket-pipelines.yml ファイルがあります。ブランチにプッシュするたびに、Pipelines では bitbucket-pipelines.yml ファイルでブランチに割り当てられたスクリプトが実行されます。このファイルでは、

  • main ブランチ パイプライン定義に、コミットが main ブランチにプッシュまたはマージされたときに実行する手順が含まれています。

  • feature/* ブランチ 定義に、feature/BB-123-fix-links ブランチなど、feature/ がプレフィックス付けされた任意のブランチにコミットがプッシュされたときに実行する手順が含まれています。

  • default パイプライン定義に、experimental ブランチなど、main ではなく、feature/ がプレフィックス付けされていない任意のブランチへのコミット時に実行する手順が含まれています。

プル リクエスト

pull-requests プロパティは、プル リクエストが作成されたときのみ実行するパイプラインを定義します。これによって、実行前に宛先ブランチを作業ブランチにマージします。フォークされたリポジトリからのプル リクエストは、パイプラインをトリガーしません。マージが失敗すると、パイプラインが停止します。

プル リクエスト パイプラインは定義されている任意のブランチおよびデフォルト パイプラインに加えて実行されるため、定義が重複すると 2 つのパイプラインが同時に実行される場合があります。

構成にすでにブランチがあり、すべてのブランチをプル リクエストでのみ実行する場合は、キーワード branchespull-requests に置き換えます。ブランチ名の照合に glob パターンを使用できます。glob パターンを使用してブランチ名を照合する方法の詳細については「Pipelines の yaml ファイルで glob パターンを使用する」をご確認ください。

コミットをプッシュしてパイプラインのトリガーをスキップしたい場合は、[skip ci] または [ci skip] をコミット メッセージに追加できます。

プロパティpull-requests

必須 — いいえ

データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)

指定可能な親プロパティpipelines

指定可能な子プロパティ — 内部でネストされた stepstage、または parallel 要素を使用した、候補のブランチ名を照合するユーザー定義の glob パターン

例 — pull-requests プロパティを使用して、プル リクエストが作成されたときにパイプラインを実行する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 pipelines: pull-requests: feature/*: - step: name: Build for feature branch pull request script: - echo "Hello, feature branch PR!" hotfix/*: - step: name: Build for hotfix branch pull request script: - echo "Hello, hotfix PR!" '**': - step: name: Build for all other pull requests script: - echo "Hello, non-feature, non-hotfix pull request!"

例 — pull-requests および default プロパティを使用して、プル リクエストベースのパイプラインと既定のパイプラインを定義する

次のパイプラインはどちらも、ブランチに hotfix/ がプレフィックス付けされている場合に実行されることにご注意ください。既定のパイプラインは任意のブランチ (hotfix/ がプレフィックス付けされたブランチを含む) がリポジトリにプッシュされたときに開始され、プル リクエスト パイプラインはブランチを照合するためにプル リクエストが作成されたときに開始されます。

1 2 3 4 5 6 7 8 9 10 11 12 pipelines: pull-requests: hotfix/*: - step: name: Build for hotfix branch pull request script: - echo "Hello, hotfix PR!" default: - step: name: All other builds script: - echo "Hello, World!"

Tags

すべてのタグ固有のビルド パイプラインを定義します。このセクションの名前または表現は、Git リポジトリのタグや注釈付きタグと照合されます。glob パターンはタグの照合に使用できます。

glob パターンを使用してブランチ名を照合する方法の詳細については「Pipelines の yaml ファイルで glob パターンを使用する」をご確認ください。

プロパティtags

必須 — いいえ

データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)

指定可能な親プロパティpipelines

指定可能な子プロパティ — 内部でネストされた stepstage、または parallel 要素を使用した、候補の git タブを照合するユーザー定義の glob パターン

例 — tags プロパティを使用して、タグベースのパイプラインを定義する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 pipelines: tags: '*-windows': - step: name: Build for *-windows tags script: - echo "Hello, Windows!" '*-macos': - step: name: Build for *-macos tags script: - echo "Hello, macOS!" '*-linux': - step: name: Build for *-linux tags script: - echo "Hello, Linux!"

例 — tags および default プロパティを使用して、タグベースのパイプラインと既定のパイプラインを定義する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 pipelines: tags: '*-windows': - step: name: Build for *-windows tags script: - echo "Hello, Windows!" '*-macos': - step: name: Build for *-macos tags script: - echo "Hello, macOS!" '*-linux': - step: name: Build for *-linux tags script: - echo "Hello, Linux!" default: - step: name: Build for all other branches and commits script: - echo "Hello, branch or commit!"

カスタム (手動) パイプライン

custom プロパティは、Bitbucket Cloud インターフェイスから手動またはスケジュール実行でのみトリガーできるパイプラインを定義します。手動またはスケジュールされたパイプラインの作成方法に関する詳細については「手動およびスケジュールされたパイプラインの作成」をご確認ください。

プロパティcustom

必須 — いいえ

データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)

指定可能な親プロパティpipelines

指定可能な子プロパティ — 内部でネストされた stepstageparallel、または variables 要素を使用した、手動パイプラインの名前として使用されるユーザー定義の文字列

例 — custom プロパティを使用して、手動パイプライン「sonar」を定義する

1 2 3 4 5 6 pipelines: custom: # Pipelines that are triggered manually sonar: # The name that is displayed in the list in the Bitbucket Cloud GUI - step: script: - echo "Manual triggers for Sonar are awesome!"

例 — custom プロパティを使用して、2 つの手動パイプラインと 1 つの自動パイプラインを定義する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 pipelines: custom: # Pipelines that are triggered manually sonar: # The name that is displayed in the list in the Bitbucket Cloud GUI - step: script: - echo "Manual triggers for Sonar are awesome!" deployment-to-prod: # Another display name - step: script: - echo "Manual triggers for deployments are awesome!" branches: # Pipelines that run automatically on a commit to a branch staging: - step: script: - echo "Auto pipelines are cool too."

カスタム (手動) パイプライン変数

実行時に設定されるカスタム パイプライン変数は、custom パイプラインでのみ使用可能です。

カスタム パイプライン variables を使用すると、カスタム パイプラインの実行時に定義済みの変数を設定またはアップデートできます。各変数に名前が必要です。変数は、default 値と allowed-values のリストも保持できます。手動またはスケジュールされたパイプラインの作成方法に関する詳細については「手動およびスケジュールされたパイプラインの作成」をご確認ください。

シークレットとログイン認証情報は、漏洩を防ぐためにユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。

プロパティvariables

必須 — いいえ

データ タイプ — キーと値のペアのリスト (YAML 仕様 - ブロック マッピング)

指定可能な親プロパティcustom プロパティ内にネストされた手動パイプライン名

指定可能な子プロパティnamedefaultallowed-valuesdescription

プロパティ

必須またはオプション

説明

データ タイプ

name

必須

変数の名前。$Username を使用して構成で name: Username が参照されるなど、パイプライン構成の変数を参照するために使用されます。

文字列

default

任意

変数の既定値。変数がパイプラインの実行時に手動で設定されない場合に、この値が使用されます。実行時に設定できない変数を定義するには、ユーザー定義変数を使用します。

文字列

allowed-values

任意

変数に指定可能な値のリスト。

文字列のリスト (YAML 仕様 - シーケンス)

description

任意

ユーザーがプロパティにどのような値を追加すべきかを知るのに役立つ具体的な情報や簡単な要約を提供します。

文字列

例 — variables プロパティを使用して、カスタム パイプライン変数を定義する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 pipelines: custom: # Pipelines that are triggered manually us-build: # The name that is displayed in the list in the Bitbucket Cloud GUI - variables: - name: Username - name: Role default: "admin" # optionally provide a default variable value description: "Add user role" - name: Region default: "us-east-1" allowed-values: # optionally restrict variable values - "ap-southeast-2" - "us-east-1" - "us-west-2" - step: script: - echo "$Username manually triggered for a build for $Region as $Role!"

 

その他のヘルプ