CodeBuild でのビルドバッジサンプル - AWS CodeBuild

CodeBuild でのビルドバッジサンプル

AWS CodeBuild でビルドバッジが使用可能になりました。ビルドバッジは、埋め込み可能なイメージ (バッジ) として動的に生成され、プロジェクトの最新ビルドのステータスを示します。このイメージにアクセスするには、CodeBuild プロジェクトに対して生成されるパブリックアクセス可能な URL を使用できます。そのため、誰でも CodeBuild プロジェクトのステータスを確認できます。ビルドバッジにはセキュリティ情報が含まれないため、認証は不要です。

ビルドバッジが有効化されたビルドプロジェクトの作成 (コンソール)

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

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

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

  4. [ソース] の [ソースプロバイダ] で、ソースコードプロバイダタイプを選択し、次のいずれかの操作を行います。

    注記

    CodeBuild は、Amazon S3 ソースプロバイダーでのビルドバッジをサポートしていません。AWS CodePipeline ではアーティファクト転送に Amazon S3 を使用するため、CodePipeline で作成したパイプラインの一部であるビルドプロジェクトではビルドバッジがサポートされません

    • [CodeCommit] を選択した場合は、[リポジトリ] で、リポジトリの名前を選択します。[Enable build badge (ビルドバッジを有効にする)] を選択すると、プロジェクトのビルドステータスが表示可能および埋め込み可能になります。

    • [GitHub] を選択した場合は、手順に従って GitHub に接続 (または再接続) します。GitHub の [Authorize application] (アプリケーションの承認) ページの [Organization access] (組織アクセス) で、AWS CodeBuild にアクセスを許可する各リポジトリの横にある [Request access] (アクセスのリクエスト) を選択します。[Authorize application (アプリケーションの承認)] を選択した後で AWS CodeBuild コンソールに戻り、[リポジトリ] でソースコードが含まれているリポジトリの名前を選択します。[Enable build badge (ビルドバッジを有効にする)] を選択すると、プロジェクトのビルドステータスが表示可能および埋め込み可能になります。

    • [Bitbucket] を選択した場合は、手順に従って Bitbucket に接続 (または再接続) します。Bitbucket の [Confirm access to your account] ページで、[Organization access] の [Grant access] を選択します。[Grant access (アクセス権を付与する)] を選択した後で AWS CodeBuild コンソールに戻り、[リポジトリ] でソースコードが含まれているリポジトリの名前を選択します。[Enable build badge (ビルドバッジを有効にする)] を選択すると、プロジェクトのビルドステータスが表示可能および埋め込み可能になります。

      重要

      プロジェクトソースを更新すると、プロジェクトのビルドバッジの正確性に影響する場合があります。

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

    [Environment image (環境イメージ)] で、次のいずれかの操作を行います。

    • が管理する Docker イメージを使用するにはAWS CodeBuild、[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 レポジトリ) および [Amazon ECR image] (Amazon ECR イメージ) を使用して AWS アカウントの Docker イメージを選択します。

    • プライベート Docker イメージを使用するには、[カスタムイメージ] を選択します。[Environment type (環境タイプ)] で、 [ARM]、[Linux]、[Linux GPU] または [Windows] を選択します。[Image registry (イメージレジストリ)] に [Other registry (その他のレジストリ)] を選択して、その後プライベート Docker イメージの認証情報の ARN を入力します。認証情報は、Secrets Manager で作成する必要があります。詳細については、AWS Secrets Managerユーザーガイドの「AWS Secrets Manager とは」を参照してください。

  6. [Service role (サービスロール)] で、次のいずれかの操作を行います。

    • CodeBuild サービスロールがない場合は、[新しいサービスロール] を選択します。[Role name] に、新しいロールの名前を入力します。

    • CodeBuild サービスロールがある場合は、[Existing service role (既存のサービスロール)] を選択します。[Role ARN] で、サービスロールを選択します。

    注記

    コンソールでは、ビルドプロジェクトの作成時や更新時に CodeBuild サービスロールも作成できます。デフォルトでは、ロールはそのビルドプロジェクトでのみ使用できます。コンソールでは、このサービスロールを別のビルドプロジェクトと関連付けると、この別のビルドプロジェクトで使用できるようにロールが更新されます。サービスロールは最大 10 個のビルドプロジェクトで使用できます。

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

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

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

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

  8. [アーティファクト] の [タイプ] で、次のいずれかの操作を行います。

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

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

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

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

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

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

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

ビルドバッジが有効化されたビルドプロジェクトの作成 (CLI)

ビルドプロジェクトの作成の詳細については、「ビルドプロジェクトの作成 (AWS CLI)」を参照してください。ビルドバッジを AWS CodeBuild プロジェクトに含めるには、badgeEnabledtrue の値で指定する必要があります。

AWS CodeBuild のビルドバッジへのアクセス

ビルドバッジにアクセスするには、AWS CodeBuild コンソールまたは AWS CLI を使用できます。

  • CodeBuild コンソールでは、ビルドプロジェクトのリストの [名前] 列で、ビルドプロジェクトに対応するリンクを選択します。[ビルドプロジェクト: project-name] ページで、[設定] の [Copy badge URL (バッジ URL のコピー)] を選択します。詳細については、「ビルドプロジェクトの詳細を表示する (コンソール)」を参照してください。

  • AWS CLI で、batch-get-projects コマンドを実行します。ビルドバッジの URL は出力のプロジェクト環境の詳細セクションを含まれています。詳細については、「ビルドプロジェクトの詳細を表示する (AWS CLI)」を参照してください。

ビルドバッジのリクエスト URL は共通のデフォルトブランチのものですが、ビルドの実行に使用したソースリポジトリの任意のブランチを指定できます。次に例を示します。

https://codebuild.us-east-1.amazon.com/badges?uuid=...&branch=<branch>

また、バッジの URL の「branch」パラメーターで「tag」パラメーターを置き換えることにより、ソースリポジトリからタグを指定することもできます。次に例を示します。

https://codebuild.us-east-1.amazon.com/badges?uuid=...&tag=<tag>

CodeBuild ビルドバッジの発行

マークダウンのイメージのビルドバッジ URL を使用して、マークダウンファイルに最新ビルドのステータスを表示できます。これは、ソースリポジトリ (GitHub や CodeCommit など) の readme.md ファイルに最新ビルドのステータスを表示する場合に便利です。例:

![](<build badge URL>)

CodeBuild バッジのステータス

  • PASSING 該当するブランチで最新ビルドが成功しました。

  • FAILING 該当するブランチで最新ビルドがタイムアウト、失敗、途中終了、または停止しました。

  • IN_PROGRESS 該当するブランチで最新ビルドが進行中です。

  • UNKNOWN 該当するブランチでプロジェクトがビルドをまだ実行していないか、まったく実行したことがありません。また、ビルドバッジ機能が無効になっている可能性もあります。