Bitbucket ダウンロードにビルド アーティファクトをデプロイする
Bitbucket アプリ パスワードと Bitbucket REST API を使用すると、パイプラインによって生成されたアーティファクトを Bitbucket の Downloads エリアにデプロイできます。
「Bitbucket Pipelines でデータベースを使用してテストする」も参照してください。
ステップ 1: リポジトリ所有者向けにアプリ パスワードを作成する
リポジトリの所有者として Bitbucket にログインし、[Bitbucket 設定] > [アプリ パスワード] に移動します。
リポジトリへの書き込み権限を持つアプリ パスワードを新しく作成します。生成されたパスワードがポップアップで表示されるのでそれを記録します。パスワードの名前はユーザーの識別用にのみ使われるため、「Pipelines」などの任意の名前を設定できます。
結果
パイプを認証するためのアプリ パスワードが得られるはずです。
手順 2: 認証トークンを使用して Pipelines 変数を作成する
Bitbucket Downloads にファイルをアップロードするには、以下の変数を設定する必要があります。
パラメーター | 値 |
---|---|
BITBUCKET_USERNAME | リポジトリを所有かつアーティファクトをアップロードするユーザーの Bitbucket ユーザー名 |
BITBUCKET_APP_PASSWORD | Bitbucket が生成したアプリ パスワード |
これらの変数は、リポジトリ設定、またはリポジトリを所有するアカウントの設定で、特定の環境変数に対して定義できます。
以下の例は、リポジトリを個人が所有している場合の個人アカウントでの変数の設定を示します (リポジトリをチームが所有している場合、変数を Pipelines で参照できるようにするには、変数をチーム設定で構成する必要があります)。
結果
リポジトリでこれら 2 つの変数が構成され、パイプラインから使用する準備ができました。
ステップ 3a: bitbucket-upload-file パイプを使用したアーティファクトのデプロイ
アーティファクトを Bitbucket Downloads にアップロードするには、bitbucket-upload-file パイプを使用します。必要な作業は、アップロードするファイルをビルドのアウトプットから参照するだけです。
以下は、Gradle による Android プロジェクトのビルドの簡単な例です。Bitbucket Downloads でデバッグの Android パッケージ (APK) を提供できます。
image: maven:3.3.3
pipelines:
default:
- step:
script:
- pipe: atlassian/bitbucket-upload-file:0.1.2
variables:
BITBUCKET_USERNAME: $BITBUCKET_USERNAME
BITBUCKET_APP_PASSWORD: $BITBUCKET_APP_PASSWORD
FILENAME: "app/build/outputs/apk/debug/application-debug.apk"
結果
このステップによって、bitbucket_pipeline.yml ファイルにパイプ設定が追加されます。ステップが完了すると、アーティファクトはリポジトリの Downloads セクションにアップロードされます。
ステップ 3b: curl および Bitbucket REST API を使用したアーティファクトのデプロイ
変数とアプリ パスワードを設定したら、ビルド スクリプトで curl
を使用し、REST API を介して Bitbucket にアーティファクトをデプロイできます。
curl -X POST "https://${BITBUCKET_USERNAME}:${BITBUCKET_APP_PASSWORD}@api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"app/build/outputs/apk/debug/application.apk"
以下は、Gradle による Android プロジェクトのビルドの簡単な例です。Bitbucket Downloads でデバッグの Android パッケージ (APK) を提供できます。
image: maven:3.3.3
pipelines:
default:
- step:
script:
- mvn -B clean install
- curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"app/build/outputs/apk/debug/application.apk"
結果
このステップによって、bitbucket_pipeline.yml ファイルにパイプ設定が追加されます。ステップが完了すると、アーティファクトはリポジトリの Downloads セクションにアップロードされます。
オンライン バリデーターを使用して bitbucket-pipelines.yml ファイルをチェックすることができます。