CodeBuild の GitHub プルリクエストとウェブフックフィルターのサンプル - AWS CodeBuild

CodeBuild の GitHub プルリクエストとウェブフックフィルターのサンプル

AWS CodeBuild は、ソースリポジトリが GitHub の場合、ウェブフックをサポートします。つまり、ソースコードが GitHub リポジトリに保存されている CodeBuild ビルドプロジェクトでは、ウェブフックを使用することで、コード変更がリポジトリにプッシュされるたびにソースコードを再構築できます。

注記

Webhook を使用する場合、ユーザーが予期しないビルドをトリガーする可能性があります。このリスクを軽減するには、「ウェブフック使用のベストプラクティス。」を参照してください。

GitHub をソースリポジトリとしてビルドプロジェクトを作成し、ウェブフックを有効にする (コンソール)

  1. AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home) を開きます。

  2. CodeBuild の情報ページが表示された場合、ビルドプロジェクトを作成するを選択します。それ以外の場合は、ナビゲーションペインでビルドを展開し、[ビルドプロジェクト] を選択し、次に [Create build project (ビルドプロジェクトの作成)] を選択します。

  3. [Create build project (ビルドプロジェクトの作成)] を選択します。

  4. [Project configuration (プロジェクトの設定)] で、次のようにします。

    Project name

    このビルドプロジェクトの名前を入力します。ビルドプロジェクトの名前は、各 AWS アカウントで一意である必要があります。また、他のユーザーがこのプロジェクトの使用目的を理解できるように、ビルドプロジェクトの説明を任意で指定することもできます。

  5. [Source (ソース)] で、次のようにします。

    ソースプロバイダー

    GitHubを選択。手順に従って GitHub に接続 (または再接続) し、[Authorize (承認)] を選択します。

    リポジトリ

    [GitHub アカウントのリポジトリ] を選択します。

    GitHub リポジトリ

    GitHub リポジトリの URL を入力します。

  6. プライマリソース Webhook イベントで、以下を選択します。

    注記

    [プライマリソースのウェブフックイベント] セクションは前のステップで、[GitHub アカウントのリポジトリ] を選択した場合のみに表示されます。

    1. プロジェクトの作成時に [コードの変更がこのレポジトリにプッシュされるたびに再構築する] を選択します。

    2. [イベントタイプ] から、1 つ以上のイベントを選択します。

    3. イベントでビルドをトリガーされた時間をフィルタリングするには、[これらの条件でビルドを開始する] で、1 つ以上のオプションフィルタを追加します。

    4. イベントがトリガーされていない時間をフィルタリングするには、[これらの条件でビルドを開始しない] で、1 つ以上のオプションフィルタを追加します。

    5. 別のフィルタグループを追加する必要がある場合、[フィルタグループの追加] を選択します。

    GitHub Webhook イベントタイプとフィルターの詳細については、「GitHub ウェブフックイベント」を参照してください。

  7. [環境] で以下の操作を行います。

    環境イメージ

    次のいずれかを選択します。

    AWS CodeBuild によって管理される Docker イメージを使用するには:

    [Managed image (マネージドイメージ)] を選択し、次に [オペレーティングシステム][ランタイム][イメージ]、および [ランタイムバージョン] で適切な選択を行います。利用可能な場合は、[環境タイプ] から選択します。

    別の Docker イメージを使用するには:

    [カスタムイメージ] を選択。[Environment type (環境タイプ)] で、 [ARM]、[Linux]、[Linux GPU] または [Windows] を選択します。[Other registry (その他のレジストリ)] を選択した場合は、[External registry URL (外部のレジストリ URL)] に docker repository/docker image name の形式に従って Docker Hub の Docker イメージの名前とタグを入力します。[Amazon ECR] を選択した場合は、[Amazon ECR repository] および [Amazon ECR image] を使用して AWS アカウントの Docker イメージを選択します。

    プライベート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 個のビルドプロジェクトで使用できます。

  8. [Buildspec] で、次のいずれかを行います。

    • [Use a buildspec file (ビルド仕様ファイルの使用)] を選択してソースコードのルートディレクトリの buildspec.yml を使用します。

    • [ビルドコマンドの挿入] を選択して、コンソールを使用してビルドコマンドを挿入します。

    詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。

  9. [アーティファクト] で、次のようにします。

    タイプ

    次のいずれかを選択します。

    • ビルド出力アーティファクトを作成しない場合は、[No artifacts (アーティファクトなし)] を選択します。

    • ビルド出力を S3 バケットに保存する場合は、[Amazon S3] を選択して次のいずれかの操作を行います。

      • ビルド出力 ZIP ファイルまたはフォルダにプロジェクト名を使用する場合は、[Name (名前)] を空白のままにします。それ以外の場合は、名前を入力します。デフォルトでは、アーティファクト名はプロジェクト名です。別の名前を使用する場合は、アーティファクト名ボックスに名前を入力します。ZIP ファイルを出力する場合は、zip 拡張子を含めます。

      • [Bucket name (バケット名)] で、出力バケットの名前を選択します。

      • この手順の前の方で [ビルドコマンドの挿入] を選択した場合は、[出力ファイル] に、ビルド出力 ZIP ファイルまたはフォルダに格納するビルドのファイルの場所を入力します。複数の場所の場合は、各場所をコンマで区切ります (例: appspec.yml, target/my-app.jar)。詳細については、「files」で buildspec の構文 の説明を参照してください。

    追加設定

    [Additional configuration (追加設定)] オプションを展開し、必要に応じてオプションを設定します。

  10. [Create build project (ビルドプロジェクトの作成)] を選択します。[確認] ページで、[ビルドの開始] を選択してビルドを実行します。

検証チェック

  1. AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home) を開きます。

  2. ナビゲーションペインで、[Build projects] を選択します。

  3. 次のいずれかを行ってください。

    • 確認する Webhook を持つビルドプロジェクトのリンクを選択し、[ビルドの詳細] を選択します。

    • 確認する Webhook を持つビルドプロジェクトの横にあるラジオボタンを選択して、[View details (詳細を表示)] を選択後 [ビルドの詳細] タブを選択します。

  4. プライマリソース Webhook イベントで、Webhook の URL リンクを選択します。

  5. GitHub リポジトリの [Settings (設定)] ページの [Webhooks (Webhook)] で、[Pull Requests (プルリクエスト)] [Pushes (プッシュ)] が選択されていることを確認します。

  6. GitHub プロファイル設定の [Personal settings (個人用設定)]、[Applications (アプリケーション)]、[Authorized OAuth Apps (承認された OAuth アプリ)] に、選択した AWS リージョンへのアクセスがアプリケーションに許可されたことが表示されます。