チュートリアル: CodeCommit パイプラインソースで完全なクローンを使用する - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

チュートリアル: CodeCommit パイプラインソースで完全なクローンを使用する

CodePipeline で GitHub ソースアクションの完全なクローンオプションを選択できます。このオプションを使用して、パイプラインビルドアクションで Git メタデータの CodeBuild コマンドを実行します。

このチュートリアルでは、CodeCommit リポジトリにアクセスし、ソースデータに完全クローンオプションを使用し、リポジトリをクローンし、リポジトリの Git コマンドを実行する CodeBuild ビルドを実行するパイプラインを作成します。

注記

この機能は、アジアパシフィック (香港)、アフリカ (ケープタウン)、中東 (バーレーン)、欧州 (チューリッヒ)、または AWS GovCloud (米国西部) では利用できません。利用可能なその他のアクションについては、「との製品とサービスの統合 CodePipeline」を参照してください。欧州 (ミラノ) リージョンでのこのアクションに関する考慮事項については、「CodeStarSourceConnection Bitbucket Cloud、 GitHub Enterprise Server GitHub、 GitLab.com、および GitLab セルフマネージドアクション用の」の注意を参照してください。

前提条件

開始する前に、以下を実行する必要があります。

  • GitHub アカウントで GitHub リポジトリを作成します。

  • GitHub の認証情報を準備してください。AWS Management Console を使用して接続を設定すると、Bitbucket の認証情報を使用してサインインするように求められます。

ステップ 1: README ファイルを作成する

GitHub リポジトリを作成したら、次のステップを使用して README ファイルを追加します。

  1. GitHub リポジトリにログインし、リポジトリを選択します。

  2. 新規のファイルを作成するには、ファイルの追加 > ファイルの作成 を選択します。ファイルに名前を付けます。README.md ファイルを作成し、次のテキストを追加します。

    This is a GitHub repository!
  3. [Commit changes] (変更のコミット) を選択します。

    README.md ファイルがリポジトリのルートレベルにあることを確認してください。

ステップ 2: パイプラインを作成してプロジェクトをビルドする

このセクションでは、次のアクションを使用してパイプラインを作成します。

  • Bitbucket リポジトリとアクションへの接続を持つソースステージ。

  • AWS CodeBuild ビルドアクションを含むビルドステージ。

ウィザードを使用してパイプラインを作成するには
  1. CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home) にサインインします。

  2. [ようこそ] ページ、[Getting started] (開始方法) ページ、または [パイプライン] ページで、[パイプラインの作成] を選択します。

  3. [ステップ 1: パイプラインの設定を選択する] の [パイプライン名] に「MyGitHubPipeline」と入力します。

  4. このチュートリアルの目的では、[パイプラインタイプ] で、[V1] を選択します。[V2] を選択することもできますが、パイプラインタイプは特性と価格が異なることに注意してください。詳細については、「パイプラインのタイプ」を参照してください。

  5. [サービスロール] で、[New service role (新しいサービスロール)] を選択します。

    注記

    既存の CodePipeline サービスロールを代わりに使用する場合は、サービスロールポリシーに対する codestar-connections:UseConnection IAM アクセス許可を追加したことを確認してください。CodePipeline サービスロールの手順については、「Add permissions to the the CodePipeline service role」を参照してください。

  6. [詳細設定] では、デフォルト値のままにします。アーティファクトストアで、[Default location] (デフォルトの場所)を選択し、パイプライン用に選択したリージョン内のパイプラインのデフォルトのアーティファクトストア (デフォルトとして指定された Amazon S3 アーティファクトバケットなど) を使用します。

    注記

    これはソースコードのソースバケットではありません。パイプラインのアーティファクトストアです。パイプラインごとに S3 バケットなどの個別のアーティファクトストアが必要です。

    [次へ] を選択します。

  7. ステップ 2: [Add source stage] (ソースステージの追加) ページで、ソースステージを追加します。

    1. [ソースプロバイダー] で、[GitHub (バージョン 2)] を選択します。

    2. 接続 で、既存の接続を選択するか、新規の接続を作成します。GitHub ソースアクション用の接続を作成または管理する方法については、GitHub 接続 を参照してください。

    3. リポジトリ名 で、GitHub リポジトリの名前を選択します。

    4. BranchName に、使用するリポジトリブランチを入力します。

    5. [ソースコードの変更時にパイプラインを開始する] オプションが選択されていることを確認します。

    6. [出力アーティファクト形式] で [完全なクローン] を選択し、ソースリポジトリの Git クローンオプションを有効にします。Git クローンオプションを使用できるのは、CodeBuild によって提供されるアクションだけです。このチュートリアルでは、このオプションを使用するための CodeBuild プロジェクトサービスロールの許可を更新するために ステップ 3: 接続を使用するように CodeBuild サービスロールポリシーを更新する を使用します。

    [Next] (次へ) をクリックします。

  8. [Add build stage (ビルドステージの追加)] で、ビルドステージを追加します。

    1. [ビルドプロバイダ] で、[AWS CodeBuild] を選択します。[リージョン] がデフォルトでパイプラインリージョンになることを許可します。

    2. [プロジェクトを作成] を選択します。

    3. [プロジェクト名] に、このビルドプロジェクトの名前を入力します。

    4. [環境イメージ] で、[Managed image (マネージド型イメージ)] を選択します。[Operating system] で、[Ubuntu] を選択します。

    5. [ランタイム] で、[Standard (標準)] を選択します。[イメージ] で、[aws/codebuild/standard:5.0] を選択します。

    6. [サービスロール] で、[New service role (新しいサービスロール)] を選択します。

      注記

      CodeBuild サービスロールの名前を書き留めます。このチュートリアルの最後のステップでは、ロール名が必要になります。

    7. [Buildspec] の Build specifications (ビルド仕様) で、[Insert build commands] (ビルドコマンドの挿入) を選択します。エディタに切り替え を選択し、ビルドコマンド に以下を貼り付けます。

      注記

      ビルド仕様の env セクションで、この例に示すように、git コマンドの認証情報ヘルパーが有効になっていることを確認します。

      version: 0.2 env: git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 # name: version #commands: # - command # - command pre_build: commands: - ls -lt - cat README.md build: commands: - git log | head -100 - git status - ls - git archive --format=zip HEAD > application.zip #post_build: #commands: # - command # - command artifacts: files: - application.zip # - location #name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. [Continue to CodePipeline ] (CodePipeline に進む) を選択します。CodePipeline コンソールに戻り、ビルドコマンドを使用して設定する CodeBuild プロジェクトが作成されます。ビルドプロジェクトでは、サービスロールを使用して AWS のサービス のアクセス許可を管理します。このステップには数分かかる場合があります。

    9. [Next] (次へ) をクリックします。

  9. [Step 4: Add deploy stage (ステップ 4: デプロイステージの追加)] ページで、[Skip deploy stage (デプロイステージのスキップ)] を選択し、[スキップ] を選択して警告メッセージを受け入れます。[Next] (次へ) をクリックします。

  10. [Step 5: Review (ステップ 5: 確認)] で、[パイプラインの作成] を選択します。

ステップ 3: 接続を使用するように CodeBuild サービスロールポリシーを更新する

CodeBuild サービスロールが接続使用許可の更新をする必要があるため、最初のパイプラインの実行は失敗します。codestar-connections:UseConnection IAM 許可をサービスロールポリシーに追加します。IAM コンソールでポリシーを更新する手順については、Bitbucket、 GitHub Enterprise Server GitHub、または GitLab.com への接続の CodeBuild GitClone アクセス許可を追加する を参照してください。

ステップ 4: ビルド出力でリポジトリコマンドを表示する

  1. サービスロールが正常に更新されたら、失敗した CodeBuild ステージで 再試行 を選択します。

  2. パイプラインが正常に実行されたら、成功したビルドステージで [詳細を表示] を選択します。

    詳細ページで、[ログ] タブを選択します。CodeBuild ビルド出力を表示します。このコマンドは、入力された変数の値を出力します。

    コマンドは、README.md ファイルの内容を出力し、ディレクトリ内のファイルを一覧表示し、リポジトリのクローンを作成し、ログを表示し、リポジトリを ZIP ファイルとしてアーカイブします。