View a markdown version of this page

Solucionar problemas do webhook - AWS CodeBuild

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solucionar problemas do webhook

Problema: o webhook que você configurou Tutorial: Configurar um executor de CodeBuild-hosted GitHub ações não está funcionando ou seu trabalho de fluxo de trabalho está suspenso. GitHub

Causas possíveis:

  • O evento de Trabalhos de fluxo de trabalho do webhook pode não estar conseguindo acionar uma compilação. Revise os logs de Resposta para ver a resposta ou a mensagem de erro.

  • Os trabalhos estão sendo atribuídos ao agente de executor incorreto devido à configuração do rótulo. Esse problema pode ocorrer quando um de seus trabalhos em uma única execução de fluxo de trabalho tem menos rótulos do que outro trabalho. Por exemplo, se você tiver dois trabalhos com os seguintes rótulos no mesmo fluxo de trabalho, execute:

    • Trabalho 1: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}

    • Trabalho 2: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}, instance-size:medium

    Ao rotear um trabalho de GitHub ações auto-hospedado, GitHub roteará o trabalho para qualquer executor com todos os rótulos especificados do trabalho. Esse comportamento significa que o Trabalho 1 pode ser escolhido pelo executor criado para o Trabalho 1 ou o Trabalho 2, mas o Trabalho 2 só pode ser escolhido pelo executor criado para o Trabalho 2, pois tem um rótulo adicional. Se o Trabalho 1 for escolhido pelo executor criado para o Trabalho 2, o Trabalho 2 ficará travado, pois o executor do Trabalho 1 não tem o rótulo instance-size:medium.

Soluções recomendadas:

Ao criar vários trabalhos na mesma execução do fluxo de trabalho, use o mesmo número de substituições de rótulo para cada trabalho ou atribua a cada trabalho um rótulo personalizado, como job1 ou job2.

Atribuir a cada trabalho uma etiqueta personalizada exclusiva é a opção mais confiável. Isso garante que o conjunto de rótulos de nenhum trabalho seja um subconjunto do de outro trabalho. Quando cada trabalho carrega um rótulo que nenhum outro trabalho tem, GitHub corresponde cada trabalho somente ao executor criado para ele, independentemente de quantas outras substituições cada trabalho usa. No fluxo de trabalho a seguir, cada trabalho tem um rótulo exclusivo (job1ejob2). Embora a tarefa 2 tenha uma instance-size:medium substituição extra, a tarefa 1 não pode mais corresponder ao executor criado para a tarefa 2, então nenhuma tarefa fica paralisada:

name: Hello World on: [push] jobs: job1: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - job1 steps: - run: echo "Hello from Job 1!" job2: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - instance-size:medium - job2 steps: - run: echo "Hello from Job 2!"

Se o erro persistir, use as instruções a seguir para depurar o problema.

  1. Abra o GitHub console em https://github.com/user-name/repository-name/settings/hooks para ver as configurações de webhook do seu repositório. Nesta página, você verá o webhook que foi criado para o repositório.

  2. Escolha Editar e confirme se o webhook está habilitado para entregar eventos de tarefas do Workflow.

    Os eventos de trabalho de fluxo de trabalho estão habilitados no webhook.
  3. Navegue até a guia Recent Deliveries, encontre o evento workflow_job.queued correspondente e expanda o evento.

  4. Revise o campo de rótulos na Carga e verifique se está conforme o esperado.

  5. Por fim, revise a guia Resposta, pois ela contém a resposta ou a mensagem de erro retornada CodeBuild.

    A resposta ou mensagem de erro retornada de CodeBuild.
  6. Como alternativa, você pode depurar falhas de webhook usando GitHub as APIs. Você pode ver as entregas recentes de um webhook usando a API Listar entregas para um webhook de repositório:

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

    Depois de encontrar a entrega do webhook que você deseja depurar e anotar o ID de entrega, você pode usar a API Get a delivery for a repository webhook. CodeBuildA resposta da à carga útil de entrega do webhook pode ser encontrada na response seção:

    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

Problema: Suas GitHub ações com as regras de proteção de implantação ativadas acionam as compilações CodeBuild antes da aprovação da implantação.

Causas possíveis: CodeBuild busca a implantação e o ambiente associados à tarefa GitHub Actions, se existirem, para verificar se a implantação foi aprovada. Se CodeBuild falhar na busca da implantação ou do ambiente, a CodeBuild compilação poderá ser acionada prematuramente.

Soluções recomendadas: verifique se as credenciais associadas aos seus CodeBuild projetos têm permissões de leitura para implantações e ações internas. GitHub