AWS CodeBuild は、ソースリポジトリが Bitbucket の場合、Webhook をサポートします。つまり、ソースコードが Bitbucket リポジトリに保存されている CodeBuild ビルドプロジェクトでは、ウェブフックを使用することで、コード変更がリポジトリにプッシュされるたびにソースコードを再構築できます。詳細については、「Bitbucket ウェブフックイベント」を参照してください。
このサンプルでは、Bitbucket リポジトリを使用してプルリクエストを作成する方法について説明します。また、Bitbucket ウェブフックを使用して CodeBuild をトリガーし、プロジェクトのビルドを作成する方法についても説明します。
注記
Webhook を使用する場合、ユーザーが予期しないビルドをトリガーする可能性があります。このリスクを軽減するには、「ウェブフック使用のベストプラクティス。」を参照してください。
前提条件
このサンプルを実行するには、Bitbucket アカウントを使用して AWS CodeBuild プロジェクトを接続する必要があります。
注記
CodeBuild によって、Bitbucket を使用したアクセス許可が更新されています。以前にプロジェクトを Bitbucket に接続し、Bitbucket 接続エラーになったことがある場合は、再接続の上、CodeBuild アクセス許可を付与してウェブフックを管理する必要があります。
ステップ 1: Bitbucket を使用してビルドプロジェクトを作成し、ウェブフックを有効化
次のステップでは、Bitbucket をソースリポジトリとして使用して AWS CodeBuild プロジェクトを作成し、ウェブフックを有効にする方法について説明します。
AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home
) を開きます。 CodeBuild の情報ページが表示された場合、ビルドプロジェクトを作成するを選択します。それ以外の場合は、ナビゲーションペインでビルドを展開し、[ビルドプロジェクト] を選択し、次に [Create build project (ビルドプロジェクトの作成)] を選択します。
-
[Create build project (ビルドプロジェクトの作成)] を選択します。
-
[Project configuration (プロジェクトの設定)] で、次のようにします。
- [Project name] (プロジェクト名)
-
このビルドプロジェクトの名前を入力します。ビルドプロジェクトの名前は、各 AWS アカウントで一意である必要があります。また、他のユーザーがこのプロジェクトの使用目的を理解できるように、ビルドプロジェクトの説明を任意で指定することもできます。
-
[Source (ソース)] で、次のようにします。
- ソースプロバイダー
-
[Bitbucket] を選択します。手順に従って Bitbucket に接続 (または再接続) し、[Authorize] (承認) を選択します。
- リポジトリ
-
[Bitbucket アカウントのリポジトリ] を選択します。
まだ Bitbucket アカウントに接続していない場合は、Bitbucket のユーザーネームとパスワードを入力し、[Bitbucket 認証情報の保存] を選択します。
- Bitbucket リポジトリ
-
Bitbucket リポジトリの URL を入力します。
-
[プライマリソース Webhook イベント] で、以下を選択します。
注記
[プライマリソース Webhook イベント] セクションは、前のステップで [Bitbucket アカウントのリポジトリ] を選択した場合のみに表示されます。
-
プロジェクトの作成時に [コードの変更がこのレポジトリにプッシュされるたびに再構築する] を選択します。
-
[イベントタイプ] から、1 つ以上のイベントを選択します。
-
イベントでビルドをトリガーされた時間をフィルタリングするには、[これらの条件でビルドを開始する] で、1 つ以上のオプションフィルタを追加します。
-
イベントがトリガーされていない時間をフィルタリングするには、[これらの条件でビルドを開始しない] で、1 つ以上のオプションフィルタを追加します。
-
別のフィルタグループを追加する必要がある場合、[フィルタグループの追加] を選択します。
Bitbucket ウェブフックイベントタイプとフィルターの詳細については、「Bitbucket ウェブフックイベント」を参照してください。
-
-
[環境] で以下の操作を行います。
- 環境イメージ
-
次のいずれかを選択します。
- AWS CodeBuild によって管理される Docker イメージを使用するには:
-
[Managed image (マネージドイメージ)] を選択し、次に [オペレーティングシステム]、[ランタイム]、[イメージ]、および [ランタイムバージョン] で適切な選択を行います。利用可能な場合は、[環境タイプ] から選択します。
- 別の Docker イメージを使用するには:
-
[カスタムイメージ] を選択します。[Environment type (環境タイプ)] で、 [ARM]、[Linux]、[Linux GPU] または [Windows] を選択します。[Other registry (その他のレジストリ)] を選択した場合は、[External registry URL (外部のレジストリ URL)] に
の形式に従って Docker Hub の Docker イメージの名前とタグを入力します。[Amazon ECR] を選択した場合は、[Amazon ECR repository] (Amazon ECR レポジトリ) および [Amazon ECR image] (Amazon ECR イメージ) を使用して AWS アカウントの Docker イメージを選択します。docker repository
/docker image name
- プライベートDockerイメージを使用するには:
-
[カスタムイメージ] を選択します。[Environment type (環境タイプ)] で、 [ARM]、[Linux]、[Linux GPU] または [Windows] を選択します。[Image registry (イメージレジストリ)] に [Other registry (その他のレジストリ)] を選択して、その後プライベート Docker イメージの認証情報の ARN を入力します。認証情報は、Secrets Manager で作成する必要があります。詳細については、AWS Secrets Managerユーザーガイドの「AWS Secrets Manager とは」を参照してください。
- サービスロール
-
次のいずれかを選択します。
-
CodeBuild サービスロールがない場合は、[新しいサービスロール] を選択します。[Role name] に、新しいロールの名前を入力します。
-
CodeBuild サービスロールがある場合は、[Existing service role (既存のサービスロール)] を選択します。[Role ARN] で、サービスロールを選択します。
注記
コンソールでは、ビルドプロジェクトの作成時や更新時に CodeBuild サービスロールも作成できます。デフォルトでは、ロールはそのビルドプロジェクトでのみ使用できます。コンソールでは、このサービスロールを別のビルドプロジェクトと関連付けると、この別のビルドプロジェクトで使用できるようにロールが更新されます。サービスロールは最大 10 個のビルドプロジェクトで使用できます。
-
[Buildspec] で、次のいずれかを行います。
-
[Use a buildspec file] (ビルド仕様ファイルの使用) を選択して、ソースコードのルートディレクトリの buildspec.yml を使用します。
-
[ビルドコマンドの挿入] を選択して、コンソールを使用してビルドコマンドを挿入します。
詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。
-
-
[アーティファクト] で、次のようにします。
- タイプ
-
次のいずれかを選択します。
-
ビルド出力アーティファクトを作成しない場合は、[No artifacts (アーティファクトなし)] を選択します。
-
ビルド出力を S3 バケットに保存する場合は、[Amazon S3] を選択して次のいずれかの操作を行います。
-
ビルド出力 ZIP ファイルまたはフォルダにプロジェクト名を使用する場合は、[Name (名前)] を空白のままにします。それ以外の場合は、名前を入力します。デフォルトでは、アーティファクト名はプロジェクト名です。別の名前を使用する場合は、アーティファクト名ボックスに名前を入力します。ZIP ファイルを出力する場合は、zip 拡張子を含めます。
-
[Bucket name (バケット名)] で、出力バケットの名前を選択します。
-
この手順の前の方で [ビルドコマンドの挿入] を選択した場合は、[出力ファイル] に、ビルド出力 ZIP ファイルまたはフォルダに格納するビルドのファイルの場所を入力します。複数の場所の場合は、各場所をコンマで区切ります (例:
appspec.yml, target/my-app.jar
)。詳細については、「files
」で buildspec の構文 の説明を参照してください。
-
-
- 追加設定
-
[Additional configuration (追加設定)] オプションを展開し、必要に応じてオプションを設定します。
-
[Create build project (ビルドプロジェクトの作成)] を選択します。[確認] ページで、[ビルドの開始] を選択してビルドを実行します。
ステップ 2: Bitbucket ウェブフックを使用してビルドをトリガー
Bitbucket ウェブフックを使用するプロジェクトの場合は、Bitbucket リポジトリでソースコードの変更が検出されると、AWS CodeBuild でビルドが作成されます。
AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home
) を開きます。 -
ナビゲーションペインで [ビルドプロジェクト] を選択後、ウェブフックを使用して Bitbucket リポジトリと関連付けられているプロジェクトを選択します。Bitbucket Webhook プロジェクトの作成の詳細については、「ステップ 1: Bitbucket を使用してビルドプロジェクトを作成し、ウェブフックを有効化」を参照してください。
-
プロジェクトの Bitbucket リポジトリのコードに一部変更を加えます。
-
Bitbucket リポジトリにプルリクエストを作成します。詳細については、「プルリクエストを行う
」を参照してください。 -
Bitbucket ウェブフックページで、[View request (リクエストの表示)] を選択して最新イベントのリストを表示します。
-
[View details] (詳細の表示) を選択して、CodeBuild より返されるレスポンスに関する詳細を表示します。次のように表示されます。
"response":"Webhook received and build started: https://us-east-1.console.aws.amazon.com/codebuild/home..." "statusCode":200
-
Bitbucket プルリクエストページに移動して、ビルドのステータスを表示します。