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

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

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

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

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

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

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

パラメーター

<username>

リポジトリを所有かつアーティファクトをアップロードするユーザーの Bitbucket ユーザー名

<password>

Bitbucket が生成したアプリ パスワード

手順 2: 認証トークンを使用して Pipelines 変数を作成する

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

  • パラメーター名: BB_AUTH_STRING

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

この変数は、リポジトリまたはアカウント レベルで定義できます。

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

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

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

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

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

1 2 3 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

1 2 3 4 5 6 7 8 9 10 11 12 13 image: python:3.5.1 pipelines: branches: main: - 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 ファイルをチェックすることができます。

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。