Bitbucket Cloud の使用を開始する
Bitbucket Cloud を初めてお使いですか? 新規ユーザー用のガイドをご利用ください。
並列ステップによって、一度に (同時に) 実行できるパイプライン ステップをグループ化して、ビルド時間を短縮できます。
並行ステップを使用すると、自己完結型の一連のステップを同時に実行して、ビルドやテストを迅速に行えます。 ステップを並行した場合も、パイプラインが使用する合計のビルド時間数は変わりません。結果を早く確認できるようになりますが、使用した合計ビルド時間は、各ステップでかかった合計時間に基づいて計算されます。
この機能はさまざまな方法で使用できますが、次のガイドラインに従うことをお勧めします。
ソフトウェアをビルドするための最初のステップを設定します。
ソフトウェアをテストするための一連の並行ステップを追加します。
複数の並行テスト ステップにつながる 1 つのビルド ステップを実行している場合、最初のステップで、外部ビルドの依存関係を可能な限り多くキャッシュすると、それぞれのテスト ステップ実行時の時間を節約できます。その後、すべてのテストを同時に実行します。テストはキャッシュを使用できます。
複数の類似環境に同時にデプロイします。
例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pipelines:
default:
- step: # non-parallel step
script:
- ./build.sh
- parallel: # these 2 steps will run in parallel
steps:
- step:
script:
- ./integration-tests.sh --batch 1
- step:
script:
- ./integration-tests.sh --batch 2
- step: # non-parallel step
script:
- ./deploy.sh
標準パイプライン変数に加えて、並列ステップ グループには次の既定変数も存在します。
BITBUCKET_PARALLEL_STEP - グループ内の現在のステップのゼロベース インデックス (例: 0、1、2…)。
BITBUCKET_PARALLEL_STEP_COUNT - グループ内のステップの合計数。
パイプラインにおける 100 ステップの制限には、並行グループの各ステップも含まれます。
並列ステップ セット内のすべての環境は同じタイプでなければなりません。同じセットに本番環境タイプとテスト環境タイプを混在させないでください。
並行ステップでは、アーティファクトを生成および消費できます。次の点に注意します。
並行ステップでは、以前のステップで生成されたアーティファクトのみを使用できます。同じ並行セットのステップで生成されたものは使用できません。
並行セットのあとのステップは、生成されたすべてのファイルの組み合わせを取得します。
ファイルを含むアーティファクトが並行ステップによって同じ場所に生成された場合、競合はファイル単位で解消され、YAML ファイルの最後のステップで生成されたファイルが優先されます。
実行中のすべてのパイプラインにわたって Bitbucket ワークスペースが一度に実行できるステップ数は、プランによって異なります。
Standard と Premium の各ワークスペースでは、複数のパイプラインで同時に実行される 600 ステップをサポートできます。
無料のワークスペースでは、複数のパイプラインで同時に実行する 10 ステップをサポートできます。
この制限に到達すると、超過したステップは失敗します。
並行ステップ グループを設定するには、次のオプションを使用できます。
parallel オプションでは、ステップのリストを同時に実行することで、コードの生成とテストを高速化できます。ステップを並行にした場合でも、パイプラインが使用するビルドの合計時間数は変わりませんが、結果はより早く表示されます。パイプライン定義に設定できるステップの合計数は、並列または単独のどちらで実行されているかにかかわらず、100 に制限されます。
並行ステップの使用方法の詳細については、「成功ステップの設定または実行」を参照してください。
プロパティ — parallel
必須 — いいえ
データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — default、branches、pull-requests、tags、custom
指定可能な子プロパティ — steps (必須) と fail-fast
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
pipelines:
default:
- step: # sequential step
name: Build
script:
- ./build.sh
- step: # sequential step
name: Build
script:
- ./build.sh
- parallel: # these 2 steps will run in parallel
steps:
- step:
name: Integration 1
script:
- ./integration-tests.sh --batch 1
- step:
name: Integration 2
script:
- ./integration-tests.sh --batch 2
- step: # non-parallel step
script:
- ./deploy.sh
steps プロパティには、stage または parallel の step のリストが含まれます。ステップ リストには少なくとも 1 つの step が必要です。
プロパティ — steps
必須 — はい
データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — parallel と stage
指定可能な子プロパティ — step (必須)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
pipelines:
default:
- step: # sequential step
name: Build
script:
- ./build.sh
- step: # sequential step
name: Build
script:
- ./build.sh
- parallel: # these 2 steps will run in parallel
steps:
- step:
name: Integration 1
script:
- ./integration-tests.sh --batch 1
- step:
name: Integration 2
script:
- ./integration-tests.sh --batch 2
- step: # non-parallel step
script:
- ./deploy.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
pipelines:
default:
- stage:
name: Build and test
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.sh
fail-fast は、すべての parallel ステップに適用することもできれば、並行ステップの特定の step に適用することもできます。
ステップに fail-fast: false が含まれる場合、並行グループ全体が停止することなく、ステップが失敗することがあります。
ステップに fail-fast: true が含まれる場合、ステップが失敗すると、並行グループ全体が停止します。
プロパティ — fail-fast
必須 — いいえ
データ タイプ — ブール値
指定可能な値 — true または false
既定値 — false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pipelines:
default:
- step:
name: Build
script:
- ./build.sh
- parallel:
# this option allows a force stop on all running steps if any step fails
fail-fast: true
steps:
- step:
name: Integration 1
script:
- ./integration-tests.sh --batch 1
- step:
name: Integration 2
script:
- ./integration-tests.sh --batch 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
pipelines:
default:
- step:
name: Build
script:
- ./build.sh
- parallel:
# this option allows a force stop on all running steps if any step fails
fail-fast: true
steps:
- step:
name: Integration 1
script:
- ./integration-tests.sh --batch 1
- step:
name: Integration 2
script:
- ./integration-tests.sh --batch 2
- step:
# option can be disabled for a step
# and its failure won't stop other steps in a group
fail-fast: false
name: Upload metadata
script:
- ./upload-metadata.sh
この内容はお役に立ちましたか?