パイプラインのアーティファクト

はじめに

アーティファクトは、ステップによって作成されるファイルです。パイプライン設定で定義したら、以降のステップで共有したり、エクスポートしてステップの完了後にアーティファクトを保持したりすることができます。たとえば、ビルド ステップで生成された JAR ファイルまたはレポートを、後のデプロイメント ステップで使用できます。ステップで生成されたアーティファクトをダウンロードしたり、外部ストレージにアップロードすることもできます。

次の点に留意する必要があります。

  • ステップの最後に BITBUCKET_CLONE_DIR にあるファイルをアーティファクトとして構成できます。BITBUCKET_CLONE_DIR は、リポジトリが最初にクローンされるディレクトリです。

  • glob パターンを使用してアーティファクトを定義できます。* で開始される glob パターンは、引用句で囲む必要があります。: これらは glob パターンのため、パス セグメント "." および “..” は使用できません。ビルド ディレクトリに相対的なパスを使用します。

  • アーティファクトのパスは、BITBUCKET_CLONE_DIR. の相対パスになります。

  • ステップ中に作成されたアーティファクトは、以降のすべてのステップで使用できます。

  • 並行ステップで作成されたアーティファクトは、同じ並行ステップのグループ内の他のステップからはアクセスできない場合があります。並行グループ内の別のステップがアーティファクトを要求した場合、要求された時点で存在する可能性もあれば、存在しない可能性もあります。

  • アーティファクトは生成から 14 日後に削除されます。

  • 初期設定では、使用可能なすべてのアーティファクトがステップの開始時にダウンロードされます。ステップによってアーティファクトをダウンロードするかどうかを制御するには、download フラグを指定します。

アーティファクトの使用

以降の 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" でアーティファクトとして指定されていないため、後のステップでは利用できません。変更を保持したい場合、このステップでそれらもアーティファクトとして定義する必要があります。

  • アーティファクトはダウンロードされないため、「成功メッセージを表示」中は利用できません。このステップではアーティファクト success.txt が作成されて、後のステップでダウンロードできるようになります。

bitbucket-pipelines.yml

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 32 33 34 35 36 37 38 39 40 41 42 43 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 - step: name: Display success message artifacts: download: false # do not download artifacts in this step paths: # defining artifacts to be passed to each future step - success.txt script: - echo "Deployment successful!" > success.txt definitions: services: postgres: image: postgres:9.6.4

手動ステップ

手動ステップでは自動ステップと同様、過去のあらゆるステップで作成されたビルド アーティファクトが作業ディレクトリにコピーされます。

アーティファクトのダウンロードと有効期限

ステップで生成されたアーティファクトをダウンロードできます。

  1. パイプラインの結果ビューの [アーティファクト] タブを選択します。

  2. ダウンロード アイコンをクリックします。

アーティファクトは、アーティファクトを生成したステップの完了後 14 日間保持されます。この期間が過ぎるとアーティファクトは期限切れとなり、パイプラインでは以降のあらゆる手動ステップを実行できなくなります。

アーティファクトを 14 日間以上保持したい場合や、1 GB 以上のアーティファクトを保持したい場合、Amazon S3 や、JFrog Artifactory などのホスト型のアーティファクト リポジトリなどの、独自のストレージ ソリューションを使用することをおすすめします。アーティファクトのビルドの保持期間の制限は、コストを管理できる範囲に抑えることで、Pipelines でのビルド アーティファクトの保管および転送料金を発生させないために行っています。

詳細については、次の情報をご参照ください。

その他のヘルプ