アーティファクトをステップで使用する
はじめに
アーティファクトは、ステップによって作成されるファイルです。パイプライン設定で定義したら、以降のステップで共有したり、エクスポートしてステップの完了後にアーティファクトを保持したりすることができます。たとえば、ビルド ステップで生成された JAR ファイルまたはレポートを、後のデプロイメント ステップで使用できます。ステップで生成されたアーティファクトをダウンロードしたり、外部ストレージにアップロードすることもできます。
次の点に留意する必要があります。
- ステップの最後に
BITBUCKET_CLONE_DIR
にあるファイルをアーティファクトとして構成できます。BITBUCKET_CLONE_DIR
は、リポジトリが最初にクローンされるディレクトリです。 - glob パターンを使用してアーティファクトを定義できます。
*
で開始される glob パターンは、引用句で囲む必要があります。注: これらは glob パターンのため、パス セグメント "." および “..” は使用できません。ビルド ディレクトリに相対的なパスを使用します。 - アーティファクトのパスは、
BITBUCKET_CLONE_DIR.
の相対パスになります。 - ステップ中に作成されたアーティファクトは、以降のすべてのステップで使用できます。
- アーティファクトは生成から 14 日後に削除されます。
アーティファクトの使用
以降の bitbucket-pipelines.yml ファイルの例は、アーティファクトをステップ間で共有するための構成方法を示します。
- "Build and test" スクリプトが完了すると、
dist
フォルダと report フォルダ (いずれもBITBUCKET_CLONE_DIR
にあります) のすべてのtxt
ファイルが同じパスでアーティファクトとして保持されます。 - "Integration test" と "Deploy to beanstalk" は、最初のステップで作成された
dist
およびreports
のファイルにアクセスできます。 - "Integration test" が
dist
またはreports
へのすべての変更は、"Integration test" でアーティファクトとして指定されていないため、後のステップでは利用できません。変更を保持したい場合、このステップでそれらもアーティファクトとして定義する必要があります。
pipelines:
default:
- step:
name: Build and test
image: node:10.15.0
caches:
- node
script:
- npm install
- npm test
- npm run build
artifacts: # defining the artifacts to be passed to each future step.
- dist/**
- reports/*.txt
- step:
name: Integration test
image: node:10.15.0
caches:
- node
services:
- postgres
script:
# using one of the artifacts from the previous step
- cat reports/tests.txt
- npm run integration-test
- step:
name: Deploy to beanstalk
image: python:3.5.1
script:
- python deploy-to-beanstalk.py
definitions:
services:
postgres:
image: postgres:9.6.4
手動ステップ
手動ステップでは自動ステップと同様、過去のあらゆるステップで作成されたビルド アーティファクトが作業ディレクトリにコピーされます。
アーティファクトのダウンロードと有効期限
ステップで生成されたアーティファクトをダウンロードできます。
- パイプラインの結果ビューの [アーティファクト] タブを選択します。
- ダウンロード アイコンをクリックします。
アーティファクトは、アーティファクトを生成したステップの完了後 14 日間保持されます。この期間が過ぎるとアーティファクトは期限切れとなり、パイプラインでは以降のあらゆる手動ステップを実行できなくなります。
アーティファクトを 14 日間以上保持したい場合や、1 GB 以上のアーティファクトを保持したい場合、Amazon S3 や、JFrog Artifactory などのホスト型のアーティファクト リポジトリなどの、独自のストレージ ソリューションを使用することをおすすめします。アーティファクトのビルドの保持期間の制限は、コストを管理できる範囲に抑えることで、Pipelines でのビルド アーティファクトの保管および転送料金を発生させないために行っています。
詳細については、次の情報をご参照ください。