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

パイプラインの結果ビューからアーティファクトを直接ダウンロードできます。アーティファクトに 7 日以上アクセスする必要がある場合、アーティファクトをサードパーティのストレージに送信し、Bitbucket ビルド ステータス API を使用してコミット ビューでリンクを作成することができます。

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

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

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

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

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

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

Step 2: Create a Pipelines variable with the authentication token

Define a new secure variable in your Pipelines settings:

  • Parameter name: BB_AUTH_STRING
  • Parameter value: <username>:<password> (using the values from step 1)

You can define this variable at either the repository or account level. The example below is shown with an account variable.

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

If you are new to AWS or S3, follow the instructions on our example S3 integration to create an S3 bucket and configure the relevant authentication variables in Bitbucket Pipelines.

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

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

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

With the variable and app password in place and your artifact published to S3, you can now use curl in your build script to link your artifact's S3 URL to your Bitbucket commit via the build status REST API:

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 の例

Below is an example combining all the pieces in a sample Python project. You should adjust all the parameters in the examples to match your repository, and make sure you have all the necessary variables (including AWS authentication tokens) defined.

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 年 11 月 26 日

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

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