ウェブフックのトラブルシューティング - AWS CodeBuild

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

ウェブフックのトラブルシューティング

問題: チュートリアル: CodeBuild がホストする GitHub Actions ランナーを設定 で設定したウェブフックが機能していないか、ワークフロージョブが GitHub でハングしています。

考えられる原因:

  • ウェブフックワークフロージョブイベントがビルドのトリガーに失敗している可能性があります。[レスポンス] ログを確認して、レスポンスまたはエラーメッセージを表示します。

  • ラベル設定のため、ジョブが誤ったランナーエージェントに割り当てられています。この問題は、1 つのワークフロー実行内のいずれかのジョブのラベルが別のジョブよりも少ない場合に発生する可能性があります。たとえば、同じワークフロー実行に次のラベルを持つ 2 つのジョブがある場合です。

    • ジョブ 1: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}

    • ジョブ 2: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}instance-size:medium

    セルフホスト型 GitHub Actions ジョブをルーティングする場合、GitHub はジョブのすべての指定されたラベルを持つ任意のランナーにジョブをルーティングします。この動作により、ジョブ 1 はジョブ 1 またはジョブ 2 用に作成されたランナーによって取得できますがジョブ 2 には追加のラベルがあるため、ジョブ 2 用に作成されたランナーによってのみ取得できます。ジョブ 1 がジョブ 2 用に作成されたランナーによって取得された場合、ジョブ 1 ランナーに ラベルがないため、ジョブ 2 はスタックします。 instance-size:medium

推奨される解決策:

同じワークフロー実行内で複数のジョブを作成する場合は、各ジョブに同じ数のラベルオーバーライドを使用するか、または job1 や などのカスタムラベルを各ジョブに割り当てますjob2

エラーが解決しない場合は、次の手順を使用して問題をデバッグします。

  1. https://github.com/user-name/repository-name/settings/hooks で GitHub コンソールを開き、リポジトリのウェブフック設定を表示します。このページには、リポジトリ用に作成されたウェブフックが表示されます。

  2. [編集] を選択し、ウェブフックの [ワークフロージョブ] イベントの配信が有効になっていることを確認します。

    ワークフロージョブイベントは、ウェブフックで有効になっています。
  3. [最近の配信] タブに移動し、対応する workflow_job.queued イベントを見つけて、イベントを展開します。

  4. [ペイロード][ラベル] フィールドを確認し、期待どおりに動作していることを確認します。

  5. 最後に、[レスポンス] タブを確認します。このタブには、CodeBuild から返されたレスポンスまたはエラーメッセージが含まれています。

    CodeBuild から返されたレスポンスまたはエラーメッセージ。
  6. または、GitHub の API を使用してウェブフックの障害をデバッグすることもできます。「List deliveries for a repository webhook」API を使用して、ウェブフックの最近の配信を表示できます。

    gh api \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ /repos/owner/repo/hooks/hook-id/deliveries

    デバッグするウェブフック配信を見つけて配信 ID をメモしたら、Get a delivery for a repository webhook API を使用できます。ウェブフックの配信ペイロードに対する CodeBuild のレスポンスは、response セクションにあります。

    gh api \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ /repos/owner/repo/hooks/hook-id/deliveries/delivery-id