キャッシュ、サービス コンテナー、エクスポート パイプラインの定義

definitions オプションでは、Bitbucket Pipelines のカスタム依存関係キャッシュとサービス コンテナー (データベース サービスを含む) を定義できます。

パイプラインのキャッシュとサービス

キャッシュとサービス コンテナーを定義するには、次のオプションを使用できます。

定義

definitions プロパティは、パイプライン構成の別の場所で使用されるリソースを定義するために使用されます。リソースには、以下が含まれる可能性があります。

プロパティdefinitions

必須 — いいえ

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

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

指定可能な子プロパティcaches プロパティと services プロパティが 1 つ以上必要です。

例 — definitions を使用して、カスタム キャッシュとデータベース サービスをパイプライン ステップに追加する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 definitions: caches: bundler-packages: vendor/bundle services: my-mariadb: 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-mariadb caches: - bundler-packages script: - ruby -e 'print "Hello, World\n"'

例 — YAML アンカーを使用して、再利用可能なステップを作成する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 definitions: steps: - step: &build-test name: Build and test script: - mvn package artifacts: - target/** pipelines: branches: develop: - step: *build-test main: - step: *build-test

キャッシュ

Bitbucket Pipelines では、ビルドの依存関係やディレクトリのキャッシングをサポートし、ビルドの高速化と消費されるビルド時間の削減を実現しています。

定義済みのキャッシュもいくつか利用可能です。定義済みのキャッシュの完全なリストについては、「キャッシュ — 定義済みのキャッシュ」をご参照ください。

caches オプションの使用に関する情報は、「キャッシュ」をご参照ください。

プロパティcaches

必須 — いいえ

データ タイプ — 改行で区切られた名前と値のペアのブロック (YAML 仕様 - ブロック マッピング)。名前はキャッシュ名、値は次のいずれかです。

  • ファイルまたはディレクトリ パスを表す文字列 (glob パターンを使用できます)

  • キャッシュ キーパス オプションを含むノード

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

指定可能な子プロパティ — 次のいずれかです。

例 — caches オプションで Ruby プロジェクト用のカスタム依存関係キャッシュを作成する

1 2 3 4 5 6 7 8 9 10 11 12 definitions: caches: my-bundler-cache: vendor/bundle pipelines: default: - step: caches: - my-bundler-cache # Cache is defined above in the definitions section script: - bundle install --path vendor/bundle - ruby -e 'print "Hello, World\n"'

例 — ファイル チェックサムベースのハッシュ化を用いる Ruby プロジェクト向けに、caches オプションを使用してカスタム依存関係キャッシュを作成する

keyfiles オプションは、変更を監視するファイルを指定するために使用します。path で指定されたキャッシュは、key files の変更に基づいてバージョン管理されます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 definitions: caches: my-bundler-cache: key: files: - Gemfile.lock - "**/*.gemspec" # glob patterns are supported for cache key files path: vendor/bundle pipelines: default: - step: caches: - my-bundler-cache # Cache is defined above in the definitions section script: - bundle install --path vendor/bundle - ruby -e 'print "Hello, World\n"'

鍵 (キー)

キャッシュの key オプションは、キャッシュの新しいバージョンをいつ作成するかを決定する基準を定義します。バージョン管理に使用されるキャッシュ キーは、files が定義されたハッシュに基づいています。

プロパティkey

必須 — いいえ

データ タイプfiles のブロック

指定可能な親プロパティ — キャッシュ名 (caches の下にネストされます)

指定可能な子プロパティfiles

例 — ファイル チェックサムベースのハッシュ化を用いる Ruby プロジェクト向けに、キャッシュの key オプションを使用してカスタム依存関係キャッシュを作成する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 definitions: caches: my-bundler-cache: key: files: - Gemfile.lock - "**/*.gemspec" # glob patterns are supported for cache key files path: vendor/bundle pipelines: default: - step: caches: - my-bundler-cache # Cache is defined above in the definitions section script: - bundle install --path vendor/bundle - ruby -e 'print "Hello, World\n"'
キー ファイル

キャッシュ キーの files プロパティには、変更を監視するリポジトリ内のファイルがリストされます。1 つ以上の files のハッシュが変更されると、新しいバージョンのキャッシュが作成されます。

プロパティfiles

必須 — はい

データ タイプ — ファイル名に一致する文字列のリスト (glob パターンを使用できます)

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

例 — ファイル チェックサムベースのハッシュ化を用いる Ruby プロジェクト向けに、キャッシュ キーの files オプションを使用してカスタム依存関係キャッシュを作成する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 definitions: caches: my-bundler-cache: key: files: - Gemfile.lock - "**/*.gemspec" # glob patterns are supported for cache key files path: vendor/bundle pipelines: default: - step: caches: - my-bundler-cache # Cache is defined above in the definitions section script: - bundle install --path vendor/bundle - ruby -e 'print "Hello, World\n"'

パス

キャッシュの path オプションは、キャッシュするパスを定義します。これは、ソース リポジトリ外の場合があります。

プロパティpath

必須 — いいえ

データ タイプ — 文字列としてのユーザー定義のファイル パス (glob パターンを使用できます)

指定可能な親プロパティ — キャッシュ名 (caches の下にネストされます)

例 — ファイル チェックサムベースのハッシュ化を用いる Ruby プロジェクト向けに、キャッシュの path オプションを使用してカスタム依存関係キャッシュを作成する

keyfiles オプションは、変更を監視するファイルを指定するために使用します。path で指定されたキャッシュは、key files の変更に基づいてバージョン管理されます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 definitions: caches: my-bundler-cache: key: files: - Gemfile.lock - "**/*.gemspec" # glob patterns are supported for cache key files path: vendor/bundle pipelines: default: - step: caches: - my-bundler-cache # Cache is defined above in the definitions section script: - bundle install --path vendor/bundle - ruby -e 'print "Hello, World\n"'

 

サービス

Bitbucket Pipelines は、サービスごとに個別の Docker コンテナーを作成できます。これによってビルドが高速化されて、サービスの編集が容易になります。サービスの作成に関する詳細は、「データベースとサービス コンテナー」をご参照ください。この services オプションを使用することで、サービスを定義してパイプライン ステップで使用できるようになります。

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

プロパティservices

必須 — いいえ

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

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

指定可能な子プロパティ — ユーザー定義の文字列。この文字列はサービスの名前になります。

例 — サービス定義を使用して、データベース サービスをビルド ステップに追加する

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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"

画像

image オプションに関する詳細 (サービスでの image オプションの使用方法を含む) については、「Docker イメージ オプション」をご参照ください。

メモリ

memory オプションは、サービス コンテナーで利用可能なメモリ (メガバイト単位) を制限するために使用されます。4096 MB (または size: 2x ビルドの場合は 8192 MB) は、step に割り当てられるメモリの総量です (スクリプトやパイプライン サービスを含む)。たとえば、サービスが 3072 MBを必要とする場合、そのサービスによるステップの実行に使用できるのは 1024 MB のみとなります。サービス コンテナーのメモリ制限に関する詳細は、「データベースとサービス コンテナー — サービス メモリの制限」をご参照ください。

プロパティmemory

必須 — いいえ

データ タイプ — 整数

指定可能な値128 MB から 4096 MB まで (または size: 2x ビルドの場合は 256 から 8192 まで)。

既定値1024

指定可能な親プロパティ — サービス名 (services の下にネストされます)

例 — memory オプションを使用して、サービス コンテナーのメモリを 512MB に制限する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 definitions: services: my-postgresql-db: image: postgres:latest memory: 512 variables: POSTGRES_PASSWORD: $MY_POSTGRES_PASSWORD pipelines: default: - step: name: Hello world example services: - my-postgresql-db script: - echo "Hello, World"

タイプ

type オプションは、Docker サービス コンテナー (Docker-in-Docker を実行する) を指定するために使用されます。対象となるのは次のとおりです。

  • カスタム名の Docker-in-Docker サービス コンテナー

  • 複数の Docker-in-Docker サービス コンテナー

詳細情報

プロパティtype

必須 — いいえ

データ タイプ — 文字列

使用可能な値docker

指定可能な親プロパティ — サービス名 (services の下にネストされます)

例 — type オプションを使用して、複数の Docker-in-Docker サービスを追加する
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 26 27 28 29 30 31 definitions: services: docker: # Default Docker-in-Docker service image: docker:dind my-docker-in-docker-name: image: docker:latest type: docker docker-custom: type: docker image: docker:dind pipelines: default: - step: script: - docker version - docker run hello-world services: - docker - step: script: - docker version - docker run hello-world services: - my-docker-in-docker-name - step: script: - docker version - docker run hello-world services: - docker-custom

Variables

サービスの variables オプションは、環境変数をサービス コンテナーに渡すために使用され、通常はサービスの設定に使用されます。サービスの作成に関する詳細は、「データベースとサービス コンテナー」をご参照ください。

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

プロパティvariables

必須 — いいえ

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

指定可能な親プロパティ — サービス名 (services の下にネストされます)

例 — variables を使用して、MariaDB サービス コンテナーをセットアップする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 definitions: services: my-service-name: image: mariadb:latest # Official MariaDB image from DockerHub: https://hub.docker.com/_/mariadb/ 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"
例 — variables を使用して、PostgreSQL サービス コンテナーをセットアップする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 definitions: services: my-postgresql-db: image: postgres:latest # Official PostgreSQL image from DockerHub: https://hub.docker.com/_/postgres variables: POSTGRES_PASSWORD: $MY_POSTGRES_PASSWORD pipelines: default: - step: name: Hello world example services: - my-postgresql-db script: - echo "Hello, World"

パイプライン - Bitbucket Premium のみ

pipelines 変数で定義されているすべてのパイプラインがエクスポートされ、同じワークスペース内の他のリポジトリによってインポートできます。

プロパティpipelines

必須 — いいえ

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

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

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

例 — export-pipeline という名前で、1 つのステップが定義されているパイプラインをエクスポートする

1 2 3 4 5 6 7 8 9 10 export: true definitions: caches: services: pipelines: export-pipeline: - step: script: - echo hello

その他のヘルプ