ビルド アーティファクトの公開とリンク

You can download your artifacts directly from the pipeline result view. If you need to access your artifacts for longer than 7 days, there is a way to send your artifacts to 3rd party storage and create a link in your commit view, using the Bitbucket build status API.

ビルド ステータス API 経由で公開およびリンクしたアーティファクトへのリンクは、Bitbucket のコミットに次のように表示されます。

ステップ 1: リポジトリ所有者向けにアプリ パスワードを作成する

リポジトリを所有かつファイルをアップロードするユーザーとして Bitbucket にログインし、[Bitbucket 設定] > [アプリ パスワード] に移動します。

リポジトリへの書き込み権限を持つアプリ パスワードを新しく作成します。生成されたパスワードがポップアップで表示されるのでそれを記録します。パスワードの名前はユーザーの識別用にのみ使われるため、「Pipelines」などの任意の名前を設定できます。

次のステップでは 2 つの値を使用します。

パラメーター
<username> リポジトリを所有かつアーティファクトをアップロードするユーザーの Bitbucket ユーザー名
<password> Bitbucket が生成したアプリ パスワード

ステップ 2: 認証トークンで Pipelines 環境変数を作成する

Pipelines 設定で新しくセキュアな環境変数を定義します。

  • パラメーター名: BB_AUTH_STRING
  • パラメーターの値: <username>:<password> (ステップ 1 の値を使用)

この環境変数は、リポジトリまたはアカウント レベルで定義できます。次の例では、アカウント レベルでの環境変数を示しています。

ステップ 3: アーティファクトを AWS に公開する

AWS や S3 に馴染みが薄い場合、弊社が提供している S3 連携の例の手順を利用することで、S3 バケットを作成し、Bitbucket Pipelines 内の関連する認証用環境変数を構成できます。

python s3_upload.py<bucket-id> <artifact-file> <artifact-key>

既存の AWS ツールを使用してアーティファクトを適切なロケーションにアップロードすることもできます。

ステップ 4: Bitbucket REST API を使用してアーティファクトをビルドにリンクする

環境変数とアプリ パスワードを設定し、アーティファクトを S3 に公開したら、ビルド スクリプトで curl を使用して、ビルド ステータス REST API 経由でアーティファクトの S3 URL を Bitbucket のコミットにリンクできます。

export S3_URL="https://${S3_BUCKET}.s3.amazonaws.com/${S3_KEY_PREFIX}_${BITBUCKET_COMMIT}"
export BUILD_STATUS="{\"key\": \"doc\", \"state\": \"SUCCESSFUL\", \"name\": \"Documentation\", \"url\": \"${S3_URL}\"}"
curl -H "Content-Type: application/json" -X POST --user "${BB_AUTH_STRING}" -d "${BUILD_STATUS}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/commit/${BITBUCKET_COMMIT}/statuses/build"


bitbucket-pipelines.yml の例

Python のサンプル プロジェクトのすべての構成要素を含む例について、以降に示します。この例のパラメーターは自身のリポジトリに合わせて調整する必要があります。また、必要なすべての環境変数 (AWS 認証トークンを含む) を定義済みである必要があります。

bitbucket-pipelines.yml
image: python:3.5.1
 
pipelines:
  branches:
    master:
      - step:
          script:
            - pip install boto3==1.3.0# required for s3_upload.py
- python run_tests.py
- python s3_upload.py"${S3_BUCKET}" documentation.html"${S3_KEY_PREFIX}_${BITBUCKET_COMMIT}"   # upload docs to S3
            - export S3_URL="https://${S3_BUCKET}.s3.amazonaws.com/"${S3_KEY_PREFIX}_${BITBUCKET_COMMIT}"
            - export BUILD_STATUS="{\"key\":\"doc\", \"state\":\"SUCCESSFUL\", \"name\":\"Documentation\", \"url\":\"${S3_URL}\"}"
            - curl -H "Content-Type:application/json" -X POST --user "${BB_AUTH_STRING}" -d "${BUILD_STATUS}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/commit/${BITBUCKET_COMMIT}/statuses/build"

オンライン バリデーターを使用して bitbucket-pipelines.yml ファイルをチェックすることができます。

最終更新日 2018 年 8 月 3 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.