ステップ オプション
これらのオプションは、コンパイラーやテストの実行など、コマンドとスクリプトを実行するために使用される必須の script プロパティを含め、パイプラインのステップを定義するために使用されます。
パイプラインのステップ オプション
ステップのプロパティ
step オプションは、ビルドの実行単位を定義するために使用されます。ステップは、bitbucket-pipelines.yml ファイルに表示される順序で実行されます。1 つのパイプラインに、最大 100 のステップを含められます。
パイプラインの各ステップは個別の Docker コンテナーを起動し、script オプションで構成されたコマンドを実行します。各ステップは、次のようなオプションを使用してカスタマイズできます。
runtime– ステップのランタイム環境をカスタマイズします。cloudatlassian-ip-ranges
image— 別の Docker イメージを使用するため。max-time— ステップの許容最大時間を設定するため。cachesとservices— 特定のキャッシュとサービス用。artifacts— 後続のステップが使用できるアーティファクトを保持します。clone— ステップの Git クローン操作をカスタマイズするため。trigger— パイプラインを続行する前に手動にする必要がある場合に、ステップをmanualに設定するため。config– to inherit a reusable set of step options from a step config definition.
プロパティ — step
必須 — はい
データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — branches、custom、default、pull-requests、steps、tags。
Allowed child properties — Requires the script property. The following properties are optional: after-script, artifacts, caches, clone, config, condition, deployment, fail-fast, image, name, oidc, runs-on, runtime, services, size, and trigger.
例 — 単一ステップを使用したパイプライン
pipelines:
default:
- step:
script:
- echo "Hello, World!"例 — 連続および並行ステップを使用したパイプライン
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.shfinal プロパティ
The final property allows you to define a final step in the YAML definition. A final step can be defined in pipeline builds that run at the end regardless of the results of other steps. The final step will still run even if one or all of the steps failed, paused, skipped, or passed in a build. The final step will run again with every new pipeline execution, including re-runs, resumes or redeploy operations.
Use the final step property for tasks that should always run at the end of a pipeline, such as cleanup, log collection, sending notifications or analytics.
Each final step can be customized using the following options:
runtime– ステップのランタイム環境をカスタマイズします。cloudatlassian-ip-ranges
image— 別の Docker イメージを使用するため。max-time— ステップの許容最大時間を設定するため。cachesとservices— 特定のキャッシュとサービス用。artifacts— 後続のステップが使用できるアーティファクトを保持します。clone— ステップの Git クローン操作をカスタマイズするため。
プロパティ — final
必須 — いいえ
Data type — Block of new-line separated key-value pairs (YAML spec - Block Mapping)
Allowed parent properties — branches, custom, default, pull-requests, steps, and tags.
Allowed child properties — Requires the script property. The following properties are optional: after-script, artifacts, caches, clone, config, image, name, oidc, runs-on, runtime, condition, services and size.
制限事項
The following options are available in any other steps but are not supported by the final step:
Only one final step can be defined and it must be the last step
You can define just onefinalsection in your pipeline, and it must always be the last step.There is a minimum step requirement
There must be at least one non-final step in the pipeline.No grouping or parallelization available
The final step cannot be included in any group (stage) or run in parallel with other steps.No child pipeline triggering from a final step
The final step cannot usetype: pipelineto trigger a child pipeline, but it can be used inside a child pipeline.No manual, deployment, or fail-fast options available
The final step does not support the manual trigger, deployment property, or fail-fast option.
Example - using final step
pipelines:
default:
- step:
name: Build
script:
- ./build.sh
- step:
name: Test
script:
- ./build.sh
- final:
name: Sending Analytics
script:
- ./analytics.shExample – using final step with custom and parallel definitions
pipelines:
custom:
test-final-step-in-parallel:
- step:
name: Build
script:
- ./build.sh
- parallel:
steps:
- step:
name: Integration 1
script:
- ./integration-tests.sh --batch 1
- step:
name: Integration 2
script:
- ./integration-tests.sh --batch 2
- step:
script:
- ./build.sh
- final:
name: Final step
script:
- ./analytics.shExample – using final step with on-fail strategy
pipelines:
custom:
test-final-step-with-on-fail-defined:
- step:
name: Build & Test
script:
- ./build.sh
- step:
name: Deployment
script:
- ./build.sh
- final:
name: Send Analytics
on-fail: #on-fail strategy can be overriden
strategy: retry
maxRetryCount: 3
script:
- ./analytics.shtype プロパティ
type プロパティは、ステップのタイプを指定するために使用されます。既定値は、通常のインライン ステップを表す type: inline です。type: inline プロパティ以外に、子パイプライン (パイプライン内で実行されるパイプライン) をトリガーするために使用される type: pipeline プロパティがあります。
パイプライン ステップの詳細については、「子パイプライン ステップのオプション」を参照してください。
プロパティ — type
必須 — いいえ (既定値は type:inline)
データ タイプ — inline または pipeline のいずれか
指定可能な親プロパティ — step
指定可能な子プロパティ — なし
script プロパティ
スクリプト
script プロパティは、step に対して実行されるコマンドのリストを指定するために使用されます。コマンドのリストは、コマンド間の自動クリーンアップ操作なしで、リストされている順序で実行されます。大規模なスクリプトは個別のスクリプト ファイルに移動し、それらを bitbucket-pipelines.yml から呼び出すことをお勧めします。
プロパティ — script
必須 — いいえ (type = inline の場合にのみ必須)
データ タイプ — 文字列や pipe プロパティのリスト (YAML 仕様 - シーケンス)
指定可能な親プロパティ — step
指定可能な子プロパティ — pipe (オプション)
例 — script プロパティを使用して、基本的なコマンドを実行する
pipelines:
default:
- step:
script:
- echo "Hello, World!"例 — script プロパティと個別のファイルを併用して、大規模なスクリプトを実行する
pipelines:
default:
- step:
script:
- ./long-build-script.sh例 — script プロパティを使用して、単一のステップに対して一連のコマンドを実行する
pipelines:
default:
- step:
script:
- echo "Hello,"
- echo "World!"
- ./build.sh例 — script と pipe プロパティを併用して、パイプを実行する
pipelines:
default:
- step:
name: Alert Opsgenie
script:
- echo "Sending an alert through Opsgenie"
- pipe: atlassian/opsgenie-send-alert:latest
variables:
GENIE_KEY: $GENIE_KEY
MESSAGE: "Danger, Will Robinson!"
DESCRIPTION: "An Opsgenie alert sent from Bitbucket Pipelines"
SOURCE: "Bitbucket Pipelines"
PRIORITY: "P1"一般的なオプション
Config
The config option makes a step inherit a named set of step options defined under definitions.step-config. Any option set on the step overrides the one it inherits. Merging happens at the top level only, so a list or block on the step replaces the inherited one rather than adding to it. For the full merge rules and examples, see Step config.
default is a reserved name. A step can set config: default even when no default step config is defined. Any other name must exist under definitions.step-config.
Property — config
Required — No
Data type — String
Allowed values — The name of a step config defined under definitions.step-config, or default
Allowed parent properties — step
Allowed child properties — None
Example — using the config option to reuse step options across steps
definitions:
step-config:
node:
image: node:22
size: 2x
pipelines:
default:
- step:
config: node
name: Build
script:
- npm ci
- npm run build
- step:
config: node
name: Test
script:
- npm test制限事項
The
configoption is available on steps, including steps insideparallelandstage. It is not available on child pipeline steps (type: pipeline).A step config cannot reference another step config.
max-time
max-time オプションは、タイムアウトする前にステップを実行できる最大時間 (分単位) を設定します。max-time オプションは、グローバル options プロパティと個々のパイプライン ステップの両方で設定できます。パイプライン ステップの既定の最大時間は 120 分です。
プロパティ — max-time
必須 — いいえ
データ タイプ — 整数
指定可能な値 — 1 ~ 720 の正の整数
既定値 — 120
例 — max-time オプションを使用して、パイプラインの各ステップに指定可能な最大時間を設定する
options:
max-time: 30
pipelines:
default:
- step:
name: Sleeping step
script:
- sleep 120m # This step will timeout after 30 minutes例 — max-time オプションを使用して、パイプラインの個別のステップに指定可能な最大時間を設定する
options:
max-time: 60
pipelines:
default:
- step:
name: Sleeping step
script:
- sleep 120m # This step will timeout after 60 minutes
- step:
name: quick step
max-time: 5
script:
- sleep 120m # This step will timeout after 5 minutesサイズ
size オプションは、Bitbucket Cloud インフラストラクチャまたは Linux Docker セルフホストランナーで実行する場合、ステップまたはパイプライン全体に追加のリソースを割り当てます。
このオプションは、ホストマシン上で利用可能なすべてのリソースを使用する Windows PowerShell、macOS シェル、Linux シェルランナーなどのシェルベースのランナーには影響しません。
デフォルトでは、Bitbucket Cloud インフラストラクチャまたは Linux Docker セルフホスト ランナー上で実行されるステップは、ボリュームをマウントするために、4GB のメモリ、4 つの CPU (他のタスクと共有される場合があります)、step あたり 64 GB のディスク容量にアクセスできます。2x のサイズを指定すると、step またはパイプラインの空きメモリは 2 倍になります。割り当てられたメモリは step の script と step. の services の両方で共有されることに注意してください。
4x を超える size オプションを選択すると、追加の CPU リソースとディスク容量も確保されます。step に 4x 以上の size が割り当てられていると、該当する数の CPU への専用アクセスが保証され、ボリュームをマウントするためのより多くのディスク容量が得られます。
4x ステップは 1x ステップのビルド時間の 4 倍を、2x ステップは 1x ステップのビルド時間の 2 倍を使用します。注意: ビルド時間を増やすと、パイプライン ビルドの現在のコストも増加する可能性があります。
サイズに基づくリソース割り当て
サイズ | CPU | メモリ | ボリューム サイズ |
|---|---|---|---|
1x | 2 | 4 | 64 ギガバイト |
2x | 4 | 8 | 64 ギガバイト |
4x | 8 | 16 | 256 ギガバイト |
8x | 16 | 32 | 256 ギガバイト |
16x | 32 | 64 | 256 ギガバイト |
24 倍 | 48 | 96 | 256 ギガバイト |
32x | 64 | 128 | 256 ギガバイト |
プロパティ — size
必須 — いいえ
データ タイプ — 文字列
指定可能な値 — 次のいずれか:
1x,2x,4x,8x,16x,24xor32xfor pipeline steps run on Bitbucket Cloud.
4x, 8x, 16x, 24x, and 32x pipelines size options are only available for builds running on a paid Bitbucket Cloud plan (Standard or Premium).
既定値 — 1x
例 — size オプションを使用して、すべてのパイプライン ステップで利用可能なメモリを増やす
options:
size: 2x
pipelines:
default:
- step:
script:
- echo "2x memory is probably not needed for an echo command"例 — size オプションを使用して、パイプライン ステップで利用可能なメモリを増やす
pipelines:
default:
- step:
size: 2x
script:
- echo "This step gets double the memory!"ランタイム
ステップに適用されるランタイム設定です。
プロパティ — runtime
必須 — いいえ
データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — options と step
指定可能な子プロパティ — cloud (必須)
例 - ランタイムを使用して、4x、8x、および 16x のすべてのステップで atlassian-ip-ranges を、すべてのステップで arm を有効にする
options:
runtime:
cloud:
atlassian-ip-ranges: true
arch: arm
pipelines:
default:
- step:
size: 4x
script:
- echo "I use atlassian-ip-ranges"例 - ランタイムを使用して、特定のステップで atlassian-ip-ranges と arm を有効にする
pipelines:
default:
- step:
size: 4x
runtime:
cloud:
atlassian-ip-ranges: true
arch: arm
script:
- echo "I use atlassian-ip-ranges"
クラウド ランタイム設定
クラウド ステップに適用されるランタイム設定です。
プロパティ — cloud
必須 — いいえ
データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — runtime
指定可能な子プロパティ — atlassian-ip-ranges (オプション)、arch (オプション)
クラウド ランタイム設定用のアトラシアン IP 範囲
このオプションは、イングレス/エグレス トラフィックのステップを実行する際に、デフォルトの aws-ip-ranges と atlassian-ip-ranges のどちらを使用するかを示します。
プロパティ — atlassian-ip-ranges
必須 — いいえ
データ タイプ — ブール値
指定可能な値 — true または false
既定値 — false
指定可能な親プロパティ — cloud
クラウド ランタイム設定のアーキテクチャ
このオプションは、ステップを実行するときに使用するアーキテクチャを制御します
プロパティ — arch
必須 — いいえ
データ タイプ — 文字列
指定可能な値 — arm または x86
既定値 — x86
指定可能な親プロパティ — cloud
arm オプションは、Bitbucket Cloud の Standard または Premium プランで実行されているビルドでのみ利用できます。
after-script
The after-script option lists the commands that will run after the script in the step is completed, regardless of whether the script succeeds or fails. This could be useful for clean up commands, test coverage, notifications, or rollbacks you might want to run. The BITBUCKET_EXIT_CODE pipeline variable can be used to determine if the script in the step has succeed or failed.
after-script のコマンドが失敗した場合
ステップの
after-scriptにリストされたそれ以降のコマンドは実行されません。ステップに対して報告されているステータスには影響しません。
プロパティ — after-script
必須 — いいえ
データ タイプ — 文字列や pipe プロパティのリスト (YAML 仕様 - シーケンス)
指定可能な親プロパティ — step
指定可能な子プロパティ — pipe (オプション)
例 — after-script オプションを使用して、script コマンドの後にコマンドを実行する
pipelines:
default:
- step:
name: Build and test
script:
- npm install
- npm test
after-script:
- echo "after script has run!"名前
step または stage の名前。名前は、Bitbucket Pipelines のログと Bitbucket UI に表示されます。名前は (パイプライン内で) 一意であり、ステージ内のステップを説明するものでなければなりません。
プロパティ — name
必須 — いいえ
データ タイプ — 文字列
例 - name を使用して 1 つのステージと 2 つのステップにラベルを付ける
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
- step:
script:
- pipe: atlassian/slack-notify:latest
variables:
WEBHOOK_URL: $SLACK_WEBHOOK
PRETEXT: 'Hello, Slack!'
MESSAGE: 'Hello, Slack!!'フェイル ファスト
fail-fast は、すべての parallel ステップに適用することもできれば、並行ステップの特定の step に適用することもできます。
ステップに
fail-fast: falseが含まれる場合、並行グループ全体が停止することなく、ステップが失敗することがあります。ステップに
fail-fast: trueが含まれる場合、ステップが失敗すると、並行グループ全体が停止します。
プロパティ — fail-fast
必須 — いいえ
データ タイプ — ブール値
指定可能な値 — true または false
既定値 — false
例 — fail-fast を使用して、いずれかのステップが失敗した時点で並行ステップを停止する
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例 — fail-fast から並行ステップを除外する
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.shon-fail
on-fail オプションはデプロイ段階/ステップでは使用できません。
on-fail オプションでは、失敗したステップを Bitbucket Pipelines でどのように処理するかをカスタマイズできます。strategy フィールドを使用して動作を設定できます。次の 2 つの戦略があります。
strategy: fail: この戦略が設定されたステップが失敗すると、パイプライン全体が停止し、失敗とマークされます。これは既定の戦略で、何も指定しない場合は自動的にこの戦略が使用されます。strategy: retry: この戦略が設定されたステップが失敗すると、そのステップは自動的に再試行されます。この戦略では、on-failに次のオプションが追加されます。maxRetryCount: 最大再試行回数を制限するオプションの値。1から10までの整数を指定できます。値を指定しない場合の既定値は1です。
strategy: ignore: この戦略が設定されたステップが失敗した場合、そのステップは UI で「失敗」とマークされますが、パイプライン全体では失敗は無視され、残りのステップは引き続き実行されます。ignore戦略を使用したステップが失敗しても、パイプライン全体は失敗とはなりません。
並行グループに関する注意事項: fail 戦略のみが fail-fast と互換性があります。ignore および retry 戦略は、同じステップ、また同じ並行グループ内の他の並行ステップに fail-fast がある場合は無効になります。
プロパティ — on-fail
必須 — いいえ
データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)
Allowed parent properties — step, parallel, and stage.
例 — on-fail を使用してステップの失敗を無視する
pipelines:
default:
- step:
# The outcome of this step will be ignored
name: 'Run linting'
on-fail:
strategy: ignore
script:
- npm install
- npm run lint
- step:
# This step will always be executed regardless the outcome of the previous stepl.
name: 'Run tests'
script:
- npm install
- npm run test例 — on-fail を使用して並行ステップ内のステップの失敗を無視する
pipelines:
default:
- parallel:
# The outcome of this parallel step will be determined only by the second step.
steps:
- step:
name: 'Run linting'
on-fail:
strategy: ignore
script:
- npm install
- npm run lint
- step:
name: 'Run tests'
script:
- npm install
- npm run test例 — on-fail を使用して並行グループ内のすべての失敗を再試行する
pipelines:
default:
- parallel:
on-fail:
strategy: retry
maxRetryCount: 3
steps:
- step:
name: 'Run test set 1'
on-fail:
strategy: ignore
script:
- npm install
- npm run test set1
- step:
# This step will retry up to 10 times until it passes
name: 'Run test set 2'
on-fail:
strategy: retry
maxRetryCount: 10 # This will override the value from the parent parallel group.
script:
- npm install
- npm run test set2例 — on-fail を使用してステージ内のすべての失敗を再試行する
pipelines:
default:
- stage:
name: "flaky stage"
on-fail:
strategy: retry
maxRetryCount: 3
steps:
- step:
# This step will retry up to 3 times until it passes
name: 'Run test set'
script:
- npm install
- npm run test出力変数
ステップの output-variables オプションを使用して、ステップから共有パイプライン変数にエクスポートできる変数のリストを定義します。
共有パイプライン変数の使用方法については、変数とシークレットに関するヘルプ ドキュメントを参照してください。
プロパティ — output-variables
必須 — いいえ
データ タイプ — 文字列のリスト (YAML 仕様 - シーケンス)
指定可能な値 — 有効な変数名
名前には ASCII 文字、数字、およびアンダースコアのみを含めることができます。
名前の先頭を数字にすることはできません。
指定可能な親プロパティ — step
例 — output-variables オプションを使用してエクスポート可能な変数を定義する
step:
script:
- echo "VARIABLE_NAME=my-value" >> $BITBUCKET_PIPELINES_VARIABLES_PATH
output-variables:
- VARIABLE_NAME
同時実行グループ
concurrency-group をステップに追加すると、Bitbucket Pipelines 内の同時実行ステップのグループを定義できます。concurrency-group を指定すると、同じグループに属するステップの実行を制御して、そのグループ内のステップを一度に 1 つだけ実行することができます。これにより、リソースの使用状況を管理し、パイプライン実行での競合を回避できます。
ステップは、ステップの実行が開始された順序に基づいて、先入れ先出し (FIFO) 戦略を使用して待機します。
プロパティ — concurrency-group
必須 — いいえ
データ タイプ — 文字列
指定可能な値 — 同時実行グループの名前
指定可能な親プロパティ — step
設定例
pipelines:
default:
- step:
name: Build
concurrency-group: build-group
script:
- echo "Building the application"
Auth
The auth option sets the permissions (scopes) of the short-lived OAuth token that Bitbucket Pipelines creates for a step.
Each step gets an OAuth token that is:
limited to the repository that the pipeline runs on
limited to the scopes listed in the step
valid only while the step runs.
Note: It expires when the step finishes.
The token is available in the build as the BITBUCKET_OAUTH_TOKEN variable. Use it to call the Bitbucket Cloud REST API from your scripts, instead of storing long-lived credentials in repository variables. For agentic steps, the same scopes also control what the agent can do through the Bitbucket MCP server. For details, see Authentication and security for Agentic Pipelines.
List only the scopes the step needs. Add write scopes only to the steps that need them.
If you use self-hosted runners, upgrade them to version 6.1.0 or later. Earlier versions do not support the auth option.
Property — auth
必須 — いいえ
Data type — Block of new-line separated key-value pairs (YAML spec - Block Mapping)
Allowed parent properties —
step, and step configs underdefinitions.step-configAllowed child properties —
system(required)
Property — system
Required — Yes, when
authis usedData type — Block of new-line separated key-value pairs (YAML spec - Block Mapping)
指定可能な親プロパティ —
authAllowed child properties —
scopes(required)
Property — scopes
Required — Yes, when
systemis usedData type — A list of strings
Allowed values — Any of the scopes below
指定可能な親プロパティ —
system
Supported Scopes
These scopes follow Bitbucket’s API token scope rules
リソース | 範囲 | Allows |
|---|---|---|
課題 |
| Read issues Create and update issues |
パイプライン |
| Read pipelines and steps Run and stop pipelines, and manage schedules and caches |
Pull Request |
| Read pull requests, comments, and tasks Create and update pull requests, comments, and tasks |
Repository (git operations) |
| Clone and fetch over Git Push over Git |
Repository (Includes API access) |
| Read repository content through the API, such as files, commits, and branches. Also add build statuses to commits Change the repository through the API, such as creating branches and tags, or approving commits |
Runner |
| Read repository and workspace runners |
テスト |
| Read tests and test results Update tests |
Agent Session |
| Read Agent Sessions |
If the step lists a scope that is not in this table, the pipeline will fail with the following error: The system scopes provided contains unsupported scopes.
For detailed information on the APIs each scope allows, see the Bitbucket Cloud REST API reference.
Example — using the auth option to comment on a pull request
pipelines:
pull-requests:
'**':
- step:
name: Comment on pull request
auth:
system:
scopes:
- read:pullrequest:bitbucket
- write:pullrequest:bitbucket
script:
- >
curl -X POST
-H "Authorization: Bearer $BITBUCKET_OAUTH_TOKEN"
-H "Content-Type: application/json"
"https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pullrequests/$BITBUCKET_PR_ID/comments"
-d '{"content": {"raw": "Build passed."}}'Example — using the auth option to push a commit
pipelines:
branches:
main:
- step:
name: Bump version
auth:
system:
scopes:
- read:git:bitbucket
- write:git:bitbucket
script:
- git commit -am "Bump version [skip ci]"
- git push既定のスコープ
When clone is enabled, the step always gets read:git:bitbucket so it can clone the repository. The scopes you list are added to it.
Step setup | Scopes the step gets |
|---|---|
Clone enabled, no scopes listed |
|
Clone disabled, no scopes listed | なし |
Clone enabled, scopes listed |
|
Clone disabled, scopes listed | Your scopes |
Until 2027-04-30, steps without an auth block get read:repository:bitbucket, write:repository:bitbucket, read:pipeline:bitbucket and write:pipeline:bitbucket. Steps with an auth block get only the scopes they list, plus read:git:bitbucket when clone is enabled
キャッシュとアーティファクト
キャッシュ
ステップの caches オプションは、依存関係が外部ソース (npm や PyPI のようなパッケージ リポジトリなど) からダウンロードされるステップを示すために使用されます。これによって、外部ビルド依存関係を再度ダウンロードすることなく、以前に定義したキャッシュを作成、アップデート、または再利用できます。定義済みのカスタム キャッシュも使用できれば、定義済みのキャッシュのいずれかも使用できます。定義済みのキャッシュの完全なリストについては「キャッシュ — 定義済みのキャッシュ」をご確認ください。
caches オプションの使用に関する詳細は、「キャッシュ」を参照してください。
プロパティ — caches
必須 — いいえ
データ タイプ — 文字列のリスト (YAML 仕様 - シーケンス)
指定可能な値 — 定義済みパイプライン キャッシュの名前とカスタム キャッシュの名前。
指定可能な親プロパティ — step
例 — caches オプションを使用して、Ruby プロジェクトの依存関係をキャッシュする
definitions:
caches:
my-bundler-cache: vendor/bundle
pipelines:
default:
- step:
caches:
- my-bundler-cache # Cache is defined above in the definitions section
- node # Pre-defined Pipelines cache
script:
- bundle install --path vendor/bundle
- ruby -e 'print "Hello, World\n"'アーティファクト
artifacts オプションは、パイプラインの後からのステップで必要なビルド アーティファクトを含むファイルまたはディレクトリをリストするために使用されます。アーティファクトのパスは BITBUCKET_CLONE_DIR 変数に対する相対パスで、glob パターンを使用して定義できます。
アーティファクトの詳細については「アーティファクトをステップで使用する」をご確認ください。
プロパティ — artifacts
必須 — いいえ
データ タイプ — 次のいずれか:
ファイル パスのリスト (glob パターンを指定可能) (YAML 仕様 - シーケンス)
改行で区切られたキーと値のペアのブロック (YAML仕様 - ブロック マッピング)
指定可能な親プロパティ — step
指定可能な子プロパティ — download と paths
例 — artifacts を使用して、構築済みコードを次のステップに渡してテストする
pipelines:
default:
- step:
name: Build and test
script:
- npm install
- npm run build
artifacts:
- dist/**
- step:
name: Test code from build step stored in the dist/ directory
script:
- npm test例 — artifacts、download、paths を使用して、後のステップにアーティファクトを渡す
pipelines:
default:
- step:
name: Build and test
script:
- npm install
- npm run build
artifacts: # Store build artifacts for use in the following steps
- dist/**
- step:
name: lint code and store results
script:
- npm lint > results.txt
artifacts:
download: false # Block artifacts downloading, they're not needed for this step
paths: # Store the linting result (in addition to the dist/ directory)
- results.txt
- step:
name: Test code from build step stored in the dist/ directory
script:
- npm testアーティファクトのダウンロード
アーティファクトの download オプションは、step の開始時に前のステップからのアーティファクトをダウンロードするかどうかを制御するために使用されます。
download: true— (既定の動作) ステップの開始時に前のステップからのアーティファクトが開始され、stepのscriptsで使用できるようになります。download: false— 前のステップからのアーティファクトは、このstepでは使用できなくなります。
アーティファクトの使用方法に関する詳細については「アーティファクトをステップで使用する」をご確認ください。
プロパティ — download
必須 — いいえ
データ タイプ — ブール値
指定可能な値 — true または false
既定値 — True
指定可能な親プロパティ — artifacts
例 — download オプションを使用して、ステップでアーティファクトがダウンロードされないようにする
pipelines:
default:
- step:
name: Build and test
script:
- npm install
- npm run build
artifacts: # Store build artifacts for use in the following steps
- dist/**
- step:
name: lint code and store results
script:
- npm lint > results.txt
artifacts:
download: false # Block artifacts downloading, they're not needed for this step
- step:
name: Test code from build step stored in the dist/ directory
script:
- npm test例 — アーティファクトの download および paths オプションを併用する
pipelines:
default:
- step:
name: Build and test
script:
- npm install
- npm run build
artifacts: # Store build artifacts for use in the following steps
- dist/**
- step:
name: lint code and store results
script:
- npm lint > results.txt
artifacts:
download: false # Block artifacts downloading, they're not needed for this step
paths: # Store the linting result (in addition to the dist/ directory)
- results.txt
- step:
name: Test code from build step stored in the dist/ directory
script:
- npm testアーティファクトのパス
アーティファクトの paths オプションは、パイプラインの後からのステップで必要なビルド アーティファクトを含むファイルまたはディレクトリをリストするために使用されます。paths オプションは、アーティファクトの download オプションが定義されている場合にのみ必要で、それ以外の場合、これらのパスは artifacts オプションの下にリストできます。アーティファクトのパスは BITBUCKET_CLONE_DIR 変数に対する相対パスで、glob パターンを使用して定義できます。
アーティファクトの詳細については「アーティファクトをステップで使用する」をご確認ください。
プロパティ — paths
必須 — いいえ
データ タイプ — パスのリスト (glob パターンを指定可能) (YAML 仕様 - シーケンス)
指定可能な親プロパティ — artifacts
例 — アーティファクトの paths オプションを使用して、後のステップで使用するファイルを保持する
pipelines:
default:
- step:
name: Build and test
script:
- npm install
- npm run build
artifacts: # Store build artifacts for use in the following steps
- dist/**
- step:
name: lint code and store results
script:
- npm lint > results.txt
artifacts:
download: false # Block artifacts downloading, they're not needed for this step
paths: # Store the linting result (in addition to the dist/ directory)
- results.txt
- step:
name: Test code from build step stored in the dist/ directory
script:
- npm testパイプ
pipe
パイプは多くの作業をバックグラウンドで実行して、複雑なタスクを容易にします。つまり、ユーザーは使用したいパイプを選択し、必要な変数を指定するだけです。パイプのリポジトリで、実行中のコマンドを確認できます。
カスタム Pipes の作成および使用方法を含む、Pipes の詳細については「Bitbucket Pipelines でパイプを使用する」をご確認ください。
使用可能なパイプのリストとそれらの使用方法に関する説明については「Bitbucket Pipes 統合」をご確認ください。
プロパティ — pipe
必須 — いいえ
データ タイプ — 文字列
指定可能な値 — Docker ベースのパイプのアドレス。
指定可能な親プロパティ — script と after-script
指定可能な子プロパティ - variables (ほとんどのパイプで必須)
例 — pipe オプションとともに、公式の Opsgenie パイプを使用して Opsgenie アラートを送信する
pipelines:
default:
- step:
name: Alert Opsgenie
script:
- pipe: atlassian/opsgenie-send-alert:latest
variables:
GENIE_KEY: $GENIE_KEY
MESSAGE: "Danger, Will Robinson!"
DESCRIPTION: "An Opsgenie alert sent from Bitbucket Pipelines"
SOURCE: "Bitbucket Pipelines"
PRIORITY: "P1"例 — pipe を使用して、Opsgenie と Slack にメッセージを送信する
pipelines:
default:
- step:
name: Alert everyone!
script:
- pipe: atlassian/opsgenie-send-alert:latest
variables:
GENIE_KEY: $GENIE_KEY
MESSAGE: 'Wake up!'
- pipe: atlassian/slack-notify:latest
name: Send alert to Slack
variables:
WEBHOOK_URL: $SLACK_WEBHOOK
PRETEXT: 'Alert Everyone!'
MESSAGE: 'We have a problem!'例 — pipe オプションを使用して、カスタム パイプを実行する
pipelines:
default:
- step:
name: Running my custom pipe
script:
- pipe: docker://<DockerAccountName>/<ImageName>:<version>
variables:
USERNAME: $My_username
PASSWORD: $Passwordパイプ変数
パイプの variables オプションは、パイプの環境変数を設定するために使用されます。必須または使用可能な変数は、パイプによって異なります。
カスタム Pipes の作成および使用方法を含む、Pipes の詳細については「Bitbucket Pipelines でパイプを使用する」をご確認ください。
使用可能なパイプのリストとそれらの使用方法に関する説明については「Bitbucket Pipes 統合」をご確認ください。
シークレットとログイン認証情報漏洩を防ぐために、ユーザー定義のパイプライン変数として保存する必要があります。詳細は「変数とシークレット — ユーザー定義の変数」をご参照ください。
プロパティ — variables
必須 — パイプによって異なります
データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング)
指定可能な親プロパティ — pipe
例 — variables を使用して、2 つのパイプを設定して実行する
次の例は、Opsgenie Send Alert パイプと Slack Notify パイプを示しています。
pipelines:
default:
- step:
name: Alert everyone!
script:
- pipe: atlassian/opsgenie-send-alert:latest
name: Send alert to Opsgenie
variables:
GENIE_KEY: $GENIE_KEY
MESSAGE: 'Wake up!'
- pipe: atlassian/slack-notify:latest
name: Send alert to Slack
variables:
WEBHOOK_URL: $SLACK_WEBHOOK
PRETEXT: 'Alert Everyone!'
MESSAGE: 'We have a problem!'ランナー
runs-on
自社ホストのパイプライン ランナーでのみ利用できます。
自社ホスト ランナーでパイプライン ステップを実行するには、runs-on オプションをステップに追加します。パイプラインを実行すると、ステップは、リストされたすべてのラベルを含む、次に使用可能なランナーで実行されます。一致するすべてのランナーがビジー状態の場合、1 つのランナーが再び使用可能になるまでステップは待機します。リポジトリ内にすべてのラベルに一致するオンライン ランナーがない場合、ステップは失敗します。
関連情報
自社ホスト パイプライン ランナーについては「ランナー」をご確認ください。
ランナーを使用するようにパイプライン ステップを設定する方法については「bitbucket-pipelines.yml でランナーを設定する」をご確認ください。
プロパティ — runs-on
必須 — いいえ
データ タイプ — 次のいずれか:
文字列
文字列のリスト (YAML 仕様 - シーケンス)
指定可能な値 — 自社ホストのリポジトリまたはワークスペース パイプライン ランナーに割り当てられた任意のラベル (self.hosted など)。
指定可能な親プロパティ — step
例 — runs-on オプションを使用して、自社ホストランナーでステップを実行する
pipelines:
default:
- step:
name: Step 1
runs-on:
- 'self.hosted'
- 'my.custom.label'
script:
- echo "This step will run on a self-hosted runner with the 'my.custom.label' and 'self.hosted' labels.";
- step:
name: Step 2
script:
- echo "This step will run on Atlassian's infrastructure as usual.";docker images
ステップでの image オプションの使用方法を含め、image オプションの詳細については「Docker イメージ オプション」をご確認ください。
Git clone オプション
ステップでの clone オプションの使用方法を含め、clone オプションの詳細については「Git clone の動作」をご確認ください。
フロー制御
条件
条件 |
条件チェンジセット
条件チェンジセット
プロパティ — 必須 — condition オプションを使用する場合は必須です。 データ タイプ — 改行で区切られたキーと値のペアのブロック (YAML 仕様 - ブロック マッピング) 指定可能な親プロパティ — condition 指定可能な子プロパティ — includePaths または excludePaths (必須) 例 — condition オプションを使用して、特定のファイルの変更時のみにステップを実行するpipelines:
default:
- step:
name: step1
script:
- echo "failing paths"
- exit 1
condition:
changesets:
includePaths:
# only xml files directly under path1 directory
- "path1/*.xml"
# any changes in deeply nested directories under path2
- "path2/**"例 — condition オプションを使用して、特定のファイルの変更時のみにステージを実行するpipelines:
default:
- stage:
name: Build and test
condition:
changesets:
includePaths:
# only xml files directly under path1 directory
- "path1/*.xml"
# any changes in deeply nested directories under path2
- "path2/**"
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.sh |
条件付きチェンジセットを含むディレクトリ
condition および changesets オプションと一緒に使用すると、includePaths オプションによって、変更を確認するためのファイルまたはディレクトリのリストを提供できます。リスト内のファイルがコミットによって変更されている場合は step または stage が実行され、それ以外の場合はステップがスキップされます。
プロパティ — includePaths
必須 — いいえ
データ タイプ — パスのリスト (glob パターンを指定可能) (YAML 仕様 - シーケンス)
指定可能な親プロパティ — changesets
例 — condition オプションを使用して、特定のファイルの変更時のみにステップを実行する
pipelines:
default:
- step:
name: step1
script:
- echo "failing paths"
- exit 1
condition:
changesets:
includePaths:
# only xml files directly under path1 directory
- "path1/*.xml"
# any changes in deeply nested directories under path2
- "path2/**"例 — condition オプションを使用して、特定のファイルの変更時のみにステージを実行する
pipelines:
default:
- stage:
name: Build and test
condition:
changesets:
includePaths:
# only xml files directly under path1 directory
- "path1/*.xml"
# any changes in deeply nested directories under path2
- "path2/**"
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.sh条件付きチェンジセットの除外ディレクトリ
プロパティ — 必須 — いいえ データ タイプ — パスのリスト (glob パターンを指定可能) (YAML 仕様 - シーケンス) 指定可能な親プロパティ — changesets 例 — condition オプションを使用して、特定のファイルの変更時にステップをスキップするpipelines:
default:
- step:
name: step1
script:
- echo "failing paths"
- exit 1
condition:
changesets:
excludePaths:
# only xml files directly under path1 directory
- "path1/*.xml"
# any changes in deeply nested directories under path2
- "path2/**"例 — condition オプションを使用して、特定のファイルの変更時にステージをスキップするpipelines:
default:
- stage:
name: Build and test
condition:
changesets:
excludePaths:
# only xml files directly under path1 directory
- "path1/*.xml"
# any changes in deeply nested directories under path2
- "path2/**"
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.sh |
条件のステート
条件 state
state オプションは、step または stage の condition がブール式であり、実行するには true と評価する必要があることを示すために使用されます。
プロパティ — state
Required — Required when using the condition option without specifying changesets condition
データ タイプ — 文字列
指定可能な親プロパティ — condition
指定可能な子プロパティ — なし
例
(var_1 > 100 && var_1 <= 200) || var_2 == "ok" && var_3 == true
式言語 — 仕様
コンテキスト変数
サポートされているソース: 環境、ワークスペース、リポジトリ、パイプライン変数
保護された変数とボールト変数はサポートされていません。
リテラルと比較する場合の変数の動的タイプ推論:
var_1 == truevar_1 はブール値 (真/偽) でなければなりませんvar_2 > 100var_2 は数値でなければなりませんvar_3 == "hello world"var_3 は任意の文字列にすることができます
変数は既定で文字列として扱われます (ブール値または数値でない限り)。そのため、コンテキスト変数に文字列を割り当てるときは、二重引用符を追加しないでください。次に例を示します。
変数値が
helloの場合、条件
var_3 == "hello"はtrueとして評価されます
変数値が
"hello"の場合 (二重引用符が明示的に使用されます)条件
var_3 == "hello"はfalseとして評価されます条件
var_3 == "\"hello\""はtrueとして評価されます
制限
式の最大長: 1000 文字
changesets と組み合わせた場合の評価順序
changesetsとstateの両方が存在する場合、ステップを実行するには両方が true でなければなりませんchangesetsが最初に評価されます。false の場合、stateは評価されません
例 — ステート条件を使用して、変数が true の場合にのみステップを実行する
pipelines:
default:
- step:
name: Plan Step
script:
- echo "has_change=true" >> $BITBUCKET_PIPELINES_VARIABLES_PATH
output-variables:
- has_change
- step:
name: Deployment Step
condition:
state: has_change == true
script:
- echo "deploying..."例 — ステート条件を使用して、リポジトリ変数が true の場合にのみステージ内のステップを実行する
pipelines:
default:
- stage:
name: Deployment
condition:
state: repo_var_deployment_enabled == true
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Deploy app
script:
- sh ./deploy.shトリガー
ステージを自動的に実行する (既定の動作) か、Bitbucket ユーザー インターフェイスでユーザーが手動でトリガーした場合にのみ実行するように設定します。パイプライン内の最初のステージは手動にはできません。パイプライン全体を手動で実行するように設定するには、カスタム パイプライン トリガーを使用します。以下は、手動のステップとステージの特徴です。
最初の
stepまたはstageにはできません。設定されている順序でのみ実行できます。手動の
stepまたはstageはスキップできません。前の
stepまたはstageが正常に完了した場合のみ実行できます。リポジトリへの書き込みアクセス権限を持つユーザーのみがトリガーできます。
Pipelines の Web インターフェイス経由でトリガーされます。
ビルドが手動ステップとアーティファクトの両方を使用している場合、アーティファクトはそれらのアーティファクトを生成したステップの実行後 14 日間保存されます。この期間が過ぎると、アーティファクトは期限切れとなり、パイプラインでは以降のあらゆる手動ステップと手動ステージを実行できなくなります。
プロパティ — trigger
必須 — いいえ
データ タイプ — 文字列
指定可能な値 — automatic および manual
既定値 — automatic
例 — trigger を使用して、ステップを手動に設定する
pipelines:
default:
- step:
name: Build
script:
- npm run build
artifacts:
- dist/**
- step:
name: Deploy
trigger: manual
script:
- ./deploy.sh例 — trigger を使用してステージを手動に設定する
pipelines:
default:
- stage:
name: Linting
steps:
- step:
script:
- sh ./run-linter.sh
- stage:
name: Build and test
trigger: manual
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.shサービス — サービス コンテナーと OIDC リソース
OpenID Connect (OIDC) リソース
oidc オプションは、パイプライン ステップをリソース サーバーに接続するための OpenID Connect の使用を有効にします。oidc の値を、true に設定する必要があります。その後、OpenID Connect を設定します。パイプラインでの OIDC の使用方法に関する詳細については「OIDC を使用して Pipelines とリソース サーバーを統合する」をご確認ください。
プロパティ — oidc
必須 — いいえ
データ タイプ — ブール値
指定可能な値 — true または false
既定値 — false
指定可能な親プロパティ — step
例 — oidc オプションを使用して、パイプライン ステップをリソース サーバーに接続する
pipelines:
default:
- step:
oidc: true
script:
- echo "I can access data through OpenID Connect!"
- aws sts assume-role-with-web-identity --role-arn arn:aws:iam::XXXXXX:role/projectx-build --role-session-name build-session --web-identity-token "$BITBUCKET_STEP_OIDC_TOKEN" --duration-seconds 1000サービス
Bitbucket Pipelines can create separate Docker containers for services, which results in faster builds, and easy service editing. For details on creating services see Databases and service containers. This services option is used to indicate which steps require previously defined services.
プロパティ — services
必須 — いいえ
データ タイプ — 文字列のリスト (YAML 仕様 - シーケンス)
指定可能な値 — definitions > services の下で定義済みのサービスの名前
指定可能な親プロパティ — step
例 — ステップの services オプションを使用して、どのステップが my-service-name データベース サービスを必要としているかを示す
definitions:
services:
my-service-name:
image: mariadb:latest
variables:
MARIADB_USER: $MY_MARIADB_USER
MARIADB_PASSWORD: $MY_MARIADB_PASSWORD
MARIADB_ROOT_PASSWORD: $MARIADB_ADMIN_PASSWORD
pipelines:
default:
- step:
name: Hello world example
services:
- my-service-name
script:
- echo "Hello, World"デプロイメント
デプロイメント
Deployment の stage または step の環境を設定し、Deployment ダッシュボードを整理するために使用されます。Deployment ステージに属するすべてのステップが Deployment ステップになります。既定の環境: test、staging、または production。step または stage のデプロイ環境を設定するには、環境名を含めます。
詳細情報
デプロイ ステージについては「デプロイ ステージ」をご確認ください。
デプロイ環境の作成と設定については「デプロイのセットアップと監視」をご確認ください。
プロパティ — deployment
必須 — いいえ
データ タイプ — 文字列
指定可能な値 — デプロイ環境の名前
例 — deployment を使用して、ステップのデプロイ環境を設定する
pipelines:
default:
- step:
name: Deploy to production
deployment: production env 1
script:
- python deploy.py prod_env_1例 — deployment を使用して、ステージのデプロイ環境を設定する
pipelines:
default:
- stage:
name: Build and test
deployment: staging
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.sh
- stage:
name: Deploy to Production
deployment: prod
trigger: manual
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.sh環境
ステップまたはステージの環境を設定します。これにより、ブランチと管理者の権限のチェックに合格すれば、その環境を使用するステップが環境変数にアクセスできるようになります。
ステージで指定すると、そのステージ内のすべてのステップに同じ環境が割り当てられます。
step または stage の環境を設定するには、環境名を含めます。
詳細情報
環境ステージについては、環境ステージをご参照ください。
環境の作成と設定については「デプロイを設定、監視する」をご参照ください。
プロパティ — environment
必須 — いいえ
データ タイプ — 文字列
指定可能な値 — 環境の名前
例 — environment を使用してステップの環境を設定する
pipelines:
default:
- step:
name: Deploy to production
environment: production env 1
script:
- python deploy.py prod_env_1例 — environment を使用してステージの環境を設定する
pipelines:
default:
- stage:
name: Build and test for staging
environment: staging
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.sh
- stage:
name: Build and test for production
environment: prod
steps:
- step:
name: Build app
script:
- sh ./build-app.sh
- step:
name: Run unit tests
script:
- sh ./run-tests.shこの内容はお役に立ちましたか?