AWS CodePipeline で AWS CodeBuild を使用してコードをテストし、ビルドを実行する - AWS CodeBuild

AWS CodePipeline で AWS CodeBuild を使用してコードをテストし、ビルドを実行する

リリースプロセスを自動化するには、AWS CodePipeline を使用してコードをテストし、AWS CodeBuild でビルドを実行します。

次の表に示しているのは、タスクとその実行に使用できるメソッドです。これらのタスクを AWS SDK で達成する方法については、このトピックの対象外です。

タスク 使用可能なアプローチ このトピックで説明するアプローチ
CodeBuild でビルドを自動化する CodePipeline を使用して、継続的な配信 (CD) パイプラインを作成する
  • CodePipeline コンソール

  • AWS CLI

  • AWS SDK

  • CodePipeline コンソールの使用

  • を使用する AWS CLI

  • このトピックの情報は、AWS SDK を使用するように調整できます。詳細については、AWS CodePipeline の API リファレンスCreatePipeline またはアマゾン ウェブ サービスのツールSDK セクションでプログラミング言語の create pipeline アクションドキュメントを参照してください。

既存の CodePipeline のパイプラインに CodeBuild でのテストおよびビルドの自動化を追加する
  • CodePipeline コンソール

  • AWS CLI

  • AWS SDK

Prerequisites

  1. ビルドを計画する の質問に答えます。

  2. AWS ルートアカウントや管理者 IAM ユーザーの代わりに、IAM ユーザーを CodePipeline へのアクセスに使用している場合、AWSCodePipelineFullAccess という名前の管理ポリシーをユーザー (またはユーザーが属する IAM グループ) にアタッチします。AWS ルートアカウントは使用しないでください。このポリシーは、CodePipeline でパイプラインを作成するためのアクセス許可をユーザーに付与します。詳細については、IAM ユーザーガイドの「管理ポリシーをアタッチする」を参照してください。

    注記

    ポリシーをユーザー (またはユーザーが属する IAM グループ) にアタッチする IAM エンティティは、ポリシーをアタッチするために IAM でのアクセス許可を持っている必要があります。詳細については、IAM ユーザーガイド「IAM ユーザー、グループ、および認証情報を管理するための権限の委任」を参照してください。

  3. AWS アカウントに CodePipeline のサービスロールがまだない場合は、作成します。CodePipeline は、このサービスロールを使用してユーザーに代わっての他の AWS サービス (AWS CodeBuild など) とやり取りします。たとえば、AWS CLI を使用して CodePipeline サービスロールを作成するには、IAMの create-role コマンドを実行します:

    Linux、macOS、Unix の場合:

    aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document '{"Version":"2012-10-17","Statement":{"Effect":"Allow","Principal":{"Service":"codepipeline.amazonaws.com"},"Action":"sts:AssumeRole"}}'

    Windows の場合:

    aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"codepipeline.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}}"
    注記

    この CodePipeline のサービスロールを作成する IAM エンティティは、サービスロールを作成するために IAM のアクセス許可を持っている必要があります。

  4. CodePipeline サービスロールを作成した後、または既存のサービスロールを識別した後、AWS CodePipeline ユーザーガイドデフォルトの CodePipeline サービスロールポリシーを確認するで説明されているように、デフォルトの CodePipeline サービスロールポリシーをサービスロールに追加する必要があります (ロールのポリシーの一部になっていない場合)。

    注記

    この CodePipeline サービスロールのポリシーを追加する IAM エンティティは、サービスロールポリシーをサービスロールに追加するために IAM のアクセス許可を持っている必要があります。

  5. Amazon S3、 または GitHub など、CodeBuild と CodePipeline でサポートされているリポジトリタイプにソースコードを作成してアップロードします。(現在 CodePipeline は Bitbucket をサポートしていません。) ソースコードには buildspec ファイルが含まれている必要がありますが、このトピックの後半でビルドプロジェクトを定義するときにそのファイルを宣言できます。詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。

    重要

    パイプラインを使用してビルド済みのソースコードをデプロイする場合、ビルド出力アーティファクトには、使用するデプロイシステムとの互換性が必要です。