Bitbucket Cloud の使用を開始する
Bitbucket Cloud を初めてお使いですか? 新規ユーザー用のガイドをご利用ください。
これらのオプションによって、パイプラインの開始条件を制御できます。パイプラインの開始を特定の条件に制限すると (プル リクエストが作成またはアップデートされた場合のみなど)、チームが使用するビルド時間数を削減できます。
パイプラインは、次のようなさまざまな条件下で開始するように設定できます。
コミットが任意のブランチにプッシュされたときに実行する — 既定の開始条件。
コミットが指定されたブランチにプッシュされたときに実行する — ブランチ開始条件。
プル リクエストが作成またはアップデートされ、指定されたブランチをターゲットにしたときに実行する — プル リクエスト開始条件。
Git タグが作成されたときに実行する — タグ開始条件。
ユーザーにより手動で開始されたときに実行する — カスタム開始条件。
Pipelines は、次のオプションを使用して条件付きで開始するように設定できます。
pipelines プロパティは、リポジトリのビルド プロセスを定義するために使用されます。パイプラインの開始条件とパイプラインのステップが含まれます。pipelines プロパティは必須で、リポジトリごとに 1 回のみ定義する必要があります。
プロパティ — pipelines
必須 — はい
データ タイプ — ブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — YAML ルート (pipelines は必ず最上位のプロパティとなります)
指定可能な子プロパティ — default、branches、pull-requests、tags、custom プロパティが 1 つ以上必要です。
1
2
3
4
5
6
pipelines:
default:
- step:
name: Hello world example
script:
- echo "Hello, World!"
他のセクションのパイプライン定義に一致しないすべてのブランチのパイプライン定義が含まれます。
ブランチ固有のパイプラインが定義されている場合を除き、既定のパイプラインはリポジトリへのプッシュ (タグ プッシュは除く) のたびに実行されます。ブランチ パイプラインは branches セクションで定義できます。
コミットをプッシュしてパイプラインのトリガーをスキップしたい場合は、[skip ci] または [ci skip] をコミット メッセージに追加できます。
プロパティ — default
必須 — いいえ
データ タイプ — step、stage、または parallel プロパティのリスト (YAML 仕様 - シーケンス)
指定可能な親プロパティ — pipelines
指定可能な子プロパティ — step、stage、または parallel プロパティが 1 つ以上必要です。
1
2
3
4
5
6
pipelines:
default:
- step:
name: Hello world example
script:
- echo "Hello, World!"
次の例は、既定のパイプラインを定義し、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
指定可能な子プロパティ — 内部でネストされた step、stage、または parallel 要素を使用した、候補のブランチ名を照合するユーザー定義の glob パターン
リポジトリには、その 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 つのパイプラインが同時に実行される場合があります。
構成にすでにブランチがあり、すべてのブランチをプル リクエストでのみ実行する場合は、キーワード branches を pull-requests に置き換えます。ブランチ名の照合に glob パターンを使用できます。glob パターンを使用してブランチ名を照合する方法の詳細については「Pipelines の yaml ファイルで glob パターンを使用する」をご確認ください。
コミットをプッシュしてパイプラインのトリガーをスキップしたい場合は、[skip ci] または [ci skip] をコミット メッセージに追加できます。
プロパティ — pull-requests
必須 — いいえ
データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — pipelines
指定可能な子プロパティ — 内部でネストされた step、stage、または parallel 要素を使用した、候補のブランチ名を照合するユーザー定義の glob パターン
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!"
次のパイプラインはどちらも、ブランチに 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!"
すべてのタグ固有のビルド パイプラインを定義します。このセクションの名前または表現は、Git リポジトリのタグや注釈付きタグと照合されます。glob パターンはタグの照合に使用できます。
glob パターンを使用してブランチ名を照合する方法の詳細については「Pipelines の yaml ファイルで glob パターンを使用する」をご確認ください。
プロパティ — tags
必須 — いいえ
データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — pipelines
指定可能な子プロパティ — 内部でネストされた step、stage、または parallel 要素を使用した、候補の git タブを照合するユーザー定義の glob パターン
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!"
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
指定可能な子プロパティ — 内部でネストされた step、stage、parallel、または variables 要素を使用した、手動パイプラインの名前として使用されるユーザー定義の文字列
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!"
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 プロパティ内にネストされた手動パイプライン名
指定可能な子プロパティ — name、default、allowed-values、description
プロパティ | 必須またはオプション | 説明 | データ タイプ |
---|---|---|---|
name | 必須 | 変数の名前。$Username を使用して構成で name: Username が参照されるなど、パイプライン構成の変数を参照するために使用されます。 | 文字列 |
default | 任意 | 変数の既定値。変数がパイプラインの実行時に手動で設定されない場合に、この値が使用されます。実行時に設定できない変数を定義するには、ユーザー定義変数を使用します。 | 文字列 |
allowed-values | 任意 | 変数に指定可能な値のリスト。 | 文字列のリスト (YAML 仕様 - シーケンス) |
description | 任意 | ユーザーがプロパティにどのような値を追加すべきかを知るのに役立つ具体的な情報や簡単な要約を提供します。 | 文字列 |
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!"
この内容はお役に立ちましたか?