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

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

チュートリアル: GitHub パイプラインソースでフルクローンを使用する

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

注記

ここで説明する完全なクローンオプションは、 CodePipeline がリポジトリメタデータをクローンするかどうかを指定することを指し、これは CodeBuild コマンドでのみ使用できます。 CodeBuild プロジェクトで使用する GitHub ユーザーアクセストークンを使用するには、以下の手順に従って Connector for GitHub App AWS をインストールし、App のインストールフィールドを空のままにします。 CodeConnections は接続にユーザーアクセストークンを使用します。

重要

パイプラインの作成の一環として、お客様が提供する S3 アーティファクトバケットがアーティファクト CodePipeline に によって使用されます。(これは S3 ソースアクションに使用されるバケットとは異なります)。S3 アーティファクトバケットがパイプラインのアカウントとは異なるアカウントにある場合は、S3 アーティファクトバケットが によって所有 AWS アカウント されており、安全で信頼できることを確認してください。

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

注記

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

前提条件

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

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

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

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

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

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

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

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

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

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

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

  • GitHub リポジトリとアクションへの接続があるソースステージ。

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

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

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

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

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

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

    注記

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

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

    注記

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

    [Next (次へ)] を選択します。

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

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

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

      特定のプロバイダーへのすべての接続に対してアプリを 1 つインストールします。Connector for GitHub App AWS を既にインストールしている場合は、それを選択してこのステップをスキップします。

      注記

      ユーザーアクセストークン を作成する場合は、 GitHub アプリケーション用 Connector が既にインストール AWS されていることを確認し、アプリケーションのインストールフィールドを空のままにします。 CodeConnections は接続にユーザーアクセストークンを使用します。詳細については、「」の「ソースプロバイダーへのアクセス CodeBuild」を参照してください。

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

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

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

    6. [出力アーティファクト形式] で [完全なクローン] を選択し、ソースリポジトリの Git クローンオプションを有効にします。によって提供されるアクションのみが Git クローンオプション CodeBuild を使用できます。このチュートリアルステップ 3: 接続を使用するように CodeBuild サービスロールポリシーを更新するでは、 を使用して 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. 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ファイルとしてアーカイブします。