パイプラインの開始条件
これらのオプションによって、パイプラインの開始条件を制御できます。パイプラインの開始を特定の条件に制限すると (プル リクエストが作成またはアップデートされた場合のみなど)、チームが使用するビルド時間数を削減できます。
パイプラインは、次のようなさまざまな条件下で開始するように設定できます。
コミットが任意のブランチにプッシュされたときに実行する — 既定の開始条件。
コミットが指定されたブランチにプッシュされたときに実行する — ブランチ開始条件。
プル リクエストが作成またはアップデートされ、指定されたブランチをターゲットにしたときに実行する — プル リクエスト開始条件。
Git タグが作成されたときに実行する — タグ開始条件。
ユーザーにより手動で開始されたときに実行する — カスタム開始条件。
パイプラインの開始条件
Pipelines は、次のオプションを使用して条件付きで開始するように設定できます。
Pipelines プロパティ
pipelines
プロパティは、リポジトリのビルド プロセスを定義するために使用されます。パイプラインの開始条件とパイプラインのステップが含まれます。pipelines
プロパティは必須で、リポジトリごとに 1 回のみ定義する必要があります。
プロパティ — pipelines
必須 — はい
データ タイプ — ブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — YAML ルート (pipelines
は必ず最上位のプロパティとなります)
指定可能な子プロパティ — default、branches、pull-requests、tags、custom プロパティが 1 つ以上必要です。
例 — pipelines プロパティを使用して、基本的なパイプラインを作成する
pipelines:
default:
- step:
name: Hello world example
script:
- echo "Hello, World!"
既定
他のセクションのパイプライン定義に一致しないすべてのブランチのパイプライン定義が含まれます。
ブランチ固有のパイプラインが定義されている場合を除き、既定のパイプラインはリポジトリへのプッシュ (タグ プッシュは除く) のたびに実行されます。ブランチ パイプラインは branch セクションで定義できます。
コミットをプッシュしてパイプラインのトリガーをスキップしたい場合は、[skip ci]
または [ci skip]
をコミット メッセージに追加できます。
プロパティ — default
必須 — いいえ
データ タイプ — step、stage、または parallel プロパティのリスト (YAML 仕様 - シーケンス)
指定可能な親プロパティ — pipelines
指定可能な子プロパティ — step、stage、または parallel プロパティが 1 つ以上必要です。
例 — default プロパティを使用して、基本的なパイプラインを定義する
pipelines:
default:
- step:
name: Hello world example
script:
- echo "Hello, World!"
例 — branches プロパティと default プロパティを併用する
次の例は、既定のパイプラインを定義し、hotfix/
がプレフィックス付けされたブランチにプッシュされた変更がないときに実行する方法を示しています。
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
指定可能な子プロパティ — 内部でネストされた step、stage、または parallel 要素を使用した、候補のブランチ名を照合するユーザー定義の glob パターン
例 — branches プロパティを使用して、ブランチベースのパイプラインを定義する
リポジトリには、その bitbucket-pipelines.yml
に次の Bitbucket Pipelines 構成があります。
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/
がプレフィックス付けされていない任意のブランチへのコミット時に実行する手順が含まれています。
プル リクエスト
The pull-requests
property defines pipelines that only run when a pull request is created. It merges the destination branch into your working branch before it runs. Pull requests from a forked repository don't trigger the pipeline. If the merge fails, the pipeline stops. Note: The assigned branch must be the source branch of the pull request.
プル リクエスト パイプラインは定義されている任意のブランチおよびデフォルト パイプラインに加えて実行されるため、定義が重複すると 2 つのパイプラインが同時に実行される場合があります。
構成にすでにブランチがあり、すべてのブランチをプル リクエストでのみ実行する場合は、キーワード branches
を pull-requests
に置き換えます。ブランチ名の照合に glob パターンを使用できます。glob パターンを使用してブランチ名を照合する方法の詳細については「Pipelines の yaml ファイルで glob パターンを使用する」をご確認ください。
コミットをプッシュしてパイプラインのトリガーをスキップしたい場合は、[skip ci]
または [ci skip]
をコミット メッセージに追加できます。
プロパティ — pull-requests
必須 — いいえ
データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — pipelines
指定可能な子プロパティ — 内部でネストされた step、stage、または parallel 要素を使用した、候補のブランチ名を照合するユーザー定義の glob パターン
例 — pull-requests プロパティを使用して、プル リクエストが作成されたときにパイプラインを実行する
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/
がプレフィックス付けされたブランチを含む) がリポジトリにプッシュされたときに開始され、プル リクエスト パイプラインはブランチを照合するためにプル リクエストが作成されたときに開始されます。
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
指定可能な子プロパティ — 内部でネストされた step、stage、または parallel 要素を使用した、候補の git タブを照合するユーザー定義の glob パターン
例 — tags プロパティを使用して、タグベースのパイプラインを定義する
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 プロパティを使用して、タグベースのパイプラインと既定のパイプラインを定義する
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
指定可能な子プロパティ — 内部でネストされた step、stage、parallel、または variables 要素を使用した、手動パイプラインの名前として使用されるユーザー定義の文字列
例 — custom プロパティを使用して、手動パイプライン「sonar」を定義する
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 つの自動パイプラインを定義する
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 プロパティ内にネストされた手動パイプライン名
指定可能な子プロパティ — name
、default
、allowed-values
、description
プロパティ | 必須またはオプション | 説明 | データ タイプ |
---|---|---|---|
| 必須 | 変数の名前。 | 文字列 |
| 任意 | 変数の既定値。変数がパイプラインの実行時に手動で設定されない場合に、この値が使用されます。実行時に設定できない変数を定義するには、ユーザー定義変数を使用します。 | 文字列 |
| 任意 | 変数に指定可能な値のリスト。 | 文字列のリスト (YAML 仕様 - シーケンス) |
| 任意 | ユーザーがプロパティにどのような値を追加すべきかを知るのに役立つ具体的な情報や簡単な要約を提供します。 | 文字列 |
例 — variables プロパティを使用して、カスタム パイプライン変数を定義する
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!"
この内容はお役に立ちましたか?