翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: ホストされた GitHub Actions CodeBuildランナーを設定する
このチュートリアルでは、 GitHub Actions ジョブを実行するように CodeBuild プロジェクトを設定する方法を示します。で GitHub アクションを使用する方法の詳細については、 CodeBuild 「」を参照してくださいでセルフホストアクション GitHub ランナーを使用する AWS CodeBuild。
このチュートリアルを完了するには、まず以下を行う必要があります。
-
個人用アクセストークン、Secrets Manager シークレット、OAuthアプリ、または GitHub アプリで接続します。OAuth アプリに接続する場合は、 CodeBuild コンソールを使用して接続する必要があります。個人用アクセストークンを作成する場合は、 CodeBuild コンソールを使用するか、 を使用できますImportSourceCredentials API。詳細については、「」を参照してくださいGitHub での および GitHub Enterprise Server アクセス CodeBuild。
-
GitHub アカウント CodeBuild に接続します。これを行うには、次のいずれかで実行できます。
-
コンソールでソースプロバイダー GitHub として を追加できます。個人用アクセストークン、Secrets Manager シークレット、OAuthアプリ、または GitHub アプリを使用して接続できます。手順については、GitHub での および GitHub Enterprise Server アクセス CodeBuild を参照してください。
-
GitHub 認証情報は 経由でインポートできますImportSourceCredentials API。これは、個人用アクセストークンでのみ実行できます。OAuth アプリを使用して接続する場合は、代わりに コンソールを使用して接続する必要があります。手順については、 アクセストークン (CLI) GitHub を使用して接続する を参照してください。
注記
これは、 GitHub アカウントの に接続していない場合にのみ実行する必要があります。
-
ステップ 1: ウェブフックを使用してプロジェクトを作成する CodeBuild
このステップでは、ウェブフックを使用して CodeBuild プロジェクトを作成し、 GitHub コンソールで確認します。ソースプロバイダーとして GitHub Enterprise を選択することもできます。 GitHub Enterprise 内でのウェブフックの作成の詳細については、「」を参照してくださいGitHub 手動ウェブフック。
ウェブフックを使用して CodeBuild プロジェクトを作成するには
-
https://console.aws.amazon.com/codesuite/codebuild/home
で AWS CodeBuild コンソールを開きます。 -
ビルドプロジェクトを作成します。詳細については、「ビルドプロジェクトの作成 (コンソール)」および「ビルドの実行 (コンソール)」を参照してください。
-
[Source (ソース)] で、次のようにします。
-
ソースプロバイダー で、 を選択しますGitHub。
-
リポジトリ で、 GitHub アカウント のリポジトリ を選択します。
-
リポジトリ にはURL、 と入力します
https://github.com/
。user-name
/repository-name
注記
デフォルトでは、プロジェクトは 1 つのリポジトリの
WORKFLOW_JOB_QUEUED
イベントのみを受信します。組織またはエンタープライズ内のすべてのリポジトリのイベントを受信する場合は、「」を参照してくださいGitHub グローバルおよび組織のウェブフック。 -
-
プライマリソースのウェブフックイベント:
-
Webhook - オプション では、コード変更がこのリポジトリ にプッシュされるたびに再構築を選択します。
-
イベントタイプ で、WORKFLOW_JOB_QUEUED を選択します。これを有効にすると、ビルドは GitHub Actions ワークフロージョブイベントによってのみトリガーされます。
注記
CodeBuild は、ウェブフックに WORKFLOW_JOB_QUEUED イベントフィルターを含むフィルターグループがある場合にのみ、 GitHub アクションワークフロージョブイベントを処理します。
-
-
[環境] で以下の操作を行います。
-
サポートされている環境イメージを選択し、 をコンピューティングします。 GitHub アクションワークフロー のラベルを使用して、イメージとインスタンスの設定を上書きするオプションがあることに注意してくださいYAML。詳細については、「ステップ 2: Actions ワークフローを更新する GitHub YAML」を参照してください
-
-
[Buildspec (Buildspec)] で、次のようにします。
-
サフィックスがラベルに追加されない限り、buildspec
-with-buildspec
は無視されることに注意してください。代わりに、セルフホストランナーをセットアップするコマンドを使用するように が上書き CodeBuild します。
-
-
-
デフォルト値を続行し、ビルドプロジェクトの作成 を選択します。
-
で GitHub コンソールを開き、ウェブフックが作成され、ワークフロージョブイベントを配信できる
https://github.com/
ことを確認します。user-name
/repository-name
/settings/hooks
ステップ 2: Actions ワークフローを更新する GitHub YAML
このステップでは、 の GitHub アクションワークフローYAMLファイルを更新GitHub
Actions ワークフローを更新する GitHub YAML
GitHub アクションワークフローの runs-on
GitHub
-
プロジェクト名と実行 ID を指定できます。その場合、ビルドはコンピューティング、イメージ、イメージバージョン、インスタンスサイズに既存のプロジェクト設定を使用します。Actions GitHub ジョブの AWS関連の設定を特定の CodeBuildプロジェクトにリンクするには、プロジェクト名が必要です。にプロジェクト名を含めることでYAML、 CodeBuild は正しいプロジェクト設定でジョブを呼び出すことができます。実行 ID を指定することで、 CodeBuild はビルドを特定のワークフロー実行にマッピングし、ワークフロー実行がキャンセルされたときにビルドを停止します。詳細については、「
github
コンテキスト」を参照してください。 runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}注記
次のことを確認してください。
<project-name>
は、前のステップで作成したプロジェクトの名前と一致します。一致しない場合、 はウェブフックを処理し CodeBuild ず、アクションワークフローが GitHubハングする可能性があります。以下は、 GitHub アクションワークフロー の例ですYAML。
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} steps: - run: echo "Hello World!"
-
ラベルでイメージとコンピューティングタイプを上書きすることもできます。使用可能なイメージのリストがホストする GitHub Actions CodeBuildランナーでサポートされているイメージをコンピューティングするについては、「」を参照してください。ラベル内のコンピューティングタイプとイメージは、プロジェクトの環境設定を上書きします。Amazon EC2コンピューティングビルドの環境設定を上書きするには、次の構文を使用します。
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<image>
-<image-version>
-<instance-size>
Lambda コンピューティングビルドの環境設定を上書きするには、次の構文を使用します。
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>
-<runtime-version>
-<instance-size>
以下は、 GitHub アクションワークフロー の例ですYAML。
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-small steps: - run: echo "Hello World!"
-
ラベルでビルドに使用されるフリートを上書きできます。これにより、指定したフリートを使用するようにプロジェクトで設定されたフリート設定が上書きされます。詳細については、「リザーブドキャパシティフリートでビルドを実行する」を参照してください。Amazon EC2コンピューティングビルドのフリート設定を上書きするには、次の構文を使用します。
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
ビルドに使用されるフリートとイメージの両方を上書きするには、次の構文を使用します。
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<image>
-<image-version>
-fleet-<fleet-name>
以下は、 GitHub アクションワークフロー の例ですYAML。
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-fleet-myFleet steps: - run: echo "Hello World!"
-
オプションで、イメージを上書きせずにインスタンスサイズの上書きを指定できます。Amazon EC2ビルドでは、イメージとイメージバージョンの両方を除外できます。Lambda ビルドでは、環境タイプとランタイムバージョンの両方を除外できます。
注記
GitHubホストされたランナーによって提供される依存関係が環境で使用 CodeBuildできない場合は、ワークフロー実行の GitHub アクションを使用して依存関係をインストールできます。例えば、 setup-python
buildspec コマンドを INSTALL、PRE_BUILD、POST_BUILD フェーズで実行する
デフォルトでは、セルフホストの GitHub Actions ビルドを実行すると、 は buildspec コマンド CodeBuild を無視します。ビルド中に buildspec コマンドを実行するには、ラベルにサフィックスとして -with-buildspec
を追加できます。
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<image>
-<image-version>
-<instance-size>
-with-buildspec
このコマンドを使用すると、 はコンテナのプライマリソースフォルダactions-runner
に という名前のフォルダ CodeBuild を作成します。 GitHub Actions ランナーが BUILD
フェーズ中に起動すると、ランナーは actions-runner
ディレクトリで実行されます。
セルフホストの GitHub Actions ビルドで buildspec オーバーライドを使用する場合、いくつかの制限があります。
-
CodeBuild は、セルフホストランナーが
BUILD
フェーズで実行されるため、BUILD
フェーズ中に buildspec コマンドを実行しません。 -
CodeBuild は、
DOWNLOAD_SOURCE
フェーズ中にプライマリソースまたはセカンダリソースをダウンロードしません。buildspec ファイルが設定されている場合、そのファイルのみがプロジェクトのプライマリソースからダウンロードされます。 -
ビルドコマンドが
PRE_BUILD
またはINSTALL
フェーズで失敗した場合、 はセルフホストランナーを起動 CodeBuild せず、 GitHub アクションワークフロージョブを手動でキャンセルする必要があります。 -
CodeBuild は、
DOWNLOAD_SOURCE
フェーズ中にランナートークンを取得します。有効期限は 1 時間です。PRE_BUILD
またはINSTALL
フェーズが 1 時間を超えると、 GitHub セルフホストランナーが起動する前にランナートークンの有効期限が切れる可能性があります。
ステップ 3: 結果を確認する
GitHub Actions ワークフローが実行されるたびに、 CodeBuild はウェブフックを介してワークフロージョブイベントを受信します。ワークフロー内のジョブごとに、 はビルド CodeBuild を開始して一時的な GitHub Actions ランナーを実行します。ランナーは、単一のワークフロージョブを実行する責任があります。ジョブが完了すると、ランナーと関連するビルドプロセスは直ちに終了します。
ワークフロージョブログを表示するには、 のリポジトリに移動し GitHub、アクション を選択し、目的のワークフローを選択し、ログを確認する特定のジョブを選択します。
ジョブが のセルフホストランナーによって取得されるのを待っている間、ログでリクエストされたラベルを確認できます CodeBuild。
ジョブが完了すると、ジョブのログを表示できます。