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á.
Configure executores de GitHub ações auto-hospedados em AWS CodeBuild
Você pode configurar seu projeto para configurar executores de GitHub ações auto-hospedados em CodeBuild contêineres para processar seus trabalhos de fluxo de trabalho do GitHub Actions. Isso pode ser feito configurando um webhook usando seu CodeBuild projeto e atualizando seu fluxo de trabalho de GitHub ações YAML para usar executores auto-hospedados hospedados em máquinas. CodeBuild Para obter mais informações, consulte Sobre executores auto-hospedados
As etapas de alto nível para configurar um CodeBuild projeto para executar trabalhos de GitHub ações são as seguintes:
-
Se você ainda não tiver feito isso, crie um token de acesso pessoal ou conecte-se a um aplicativo OAuth ao qual conectar seu projeto. GitHub
-
Navegue até o CodeBuild console, crie um CodeBuild projeto com um webhook e configure seus filtros de webhook.
-
Atualize seu fluxo de trabalho de GitHub ações YAML GitHub para configurar seu ambiente de compilação.
Para obter um procedimento mais detalhado, consulteTutorial: Configurar um executor de GitHub ações CodeBuild auto-hospedado.
Esse recurso permite que seus trabalhos de fluxo de trabalho do GitHub Actions obtenham integração nativa AWS, o que fornece segurança e conveniência por meio de recursos como IAM AWS CloudTrail, AWS Secrets Manager integração e Amazon VPC. Você pode acessar os tipos de instância mais recentes, incluindo instâncias baseadas em ARM.
Tópicos
Tutorial: Configurar um executor de GitHub ações CodeBuild auto-hospedado
Este tutorial mostra como configurar seus CodeBuild projetos para executar trabalhos do GitHub Actions.
Pré-requisitos
Para concluir este tutorial, você deve primeiramente:
-
Conecte-se com um aplicativo OAuth ou crie um token de acesso pessoal. Se quiser se conectar a um aplicativo OAuth, você deve usar o CodeBuild console para fazer isso. Se quiser criar um token de acesso pessoal, você pode usar o CodeBuild console ou usar a ImportSourceCredentials API. Para obter mais instruções, consulteGitHub e token de acesso do GitHub Enterprise Server.
-
Conecte-se CodeBuild à sua GitHub conta. Para fazer isso, é possível utilizar uma das seguintes opções:
-
Você pode adicionar GitHub como provedor de origem no console. Você pode se conectar com um aplicativo OAuth ou com um token de acesso pessoal. Para obter instruções, consulte Conecte-se GitHub com um token de acesso (console) .
-
Você pode importar suas GitHub credenciais por meio da ImportSourceCredentials API. Isso só pode ser feito com um token de acesso pessoal. Se você se conectar usando um aplicativo OAuth, deverá se conectar usando o console em vez disso. Para obter instruções, consulte Conecte-se GitHub com um token de acesso (CLI) .
nota
Isso só precisa ser feito se você não estiver conectado GitHub à sua conta.
-
Etapa 1: criar um CodeBuild projeto com um webhook
Nesta etapa, você criará um CodeBuild projeto com um webhook e o revisará no GitHub console.
Para criar um CodeBuild projeto com um webhook
-
Abra o AWS CodeBuild console em https://console.aws.amazon.com/codesuite/codebuild/home
. -
Crie um projeto de compilação. Para obter informações, consulte Criar um projeto de compilação (console) e Executar uma compilação (console).
-
Em Source (Origem):
-
Em Source provider, escolha GitHub.
-
Em Repositório, escolha Repositório na minha GitHub conta.
-
Em Repository URL (URL do repositório), insira
https://github.com/
.user-name
/repository-name
-
-
Em eventos de webhook de fonte primária:
-
Para Webhook, opcional, selecione Reconstruir sempre que uma alteração de código for enviada para esse repositório.
-
Em Tipo de evento, selecione WORKFLOW_JOB_QUEUED. Depois que isso for ativado, as compilações serão acionadas somente pelos eventos de trabalhos do fluxo de trabalho do GitHub Actions.
nota
CodeBuild só processará eventos de trabalhos do fluxo de trabalho do GitHub Actions se um webhook tiver grupos de filtros contendo o filtro de eventos WORKFLOW_JOB_QUEUED.
-
-
Em Environment (Ambiente):
-
Escolha uma imagem de ambiente e computação compatíveis. Observe que você tem a opção de substituir as configurações de imagem e instância usando um rótulo no seu fluxo de trabalho de GitHub ações YAML. Para mais informações, consulte Etapa 2: atualizar seu fluxo de trabalho de GitHub ações YAML.
-
-
Em Buildspec:
-
Observe que seu Buildspec será ignorado. Em vez disso, o CodeBuild substituirá para usar comandos que configurarão o executor auto-hospedado. A principal responsabilidade deste projeto é configurar um executor auto-hospedado para executar trabalhos de fluxo de CodeBuild trabalho do GitHub Actions.
-
-
-
Continue com os valores padrão e escolha Criar projeto de construção.
-
Abra o GitHub console em
https://github.com/
para verificar se um webhook foi criado e está habilitado para fornecer eventos de trabalhos do Workflow.user-name
/repository-name
/settings/hooks
Etapa 2: atualizar seu fluxo de trabalho de GitHub ações YAML
Nesta etapa, você atualizará o arquivo YAML do fluxo de trabalho do GitHub Actions GitHub
Atualize seu fluxo de trabalho de GitHub ações (YAML)
Navegue até GitHub
runs-on
-
Você pode especificar o nome do projeto e o ID da execução. Nesse caso, a compilação usará sua configuração de projeto existente para computação, imagem, versão da imagem e tamanho da instância. O nome do projeto é necessário para vincular as configurações AWS relacionadas do seu trabalho de GitHub ações a um CodeBuild projeto específico. Ao incluir o nome do projeto no YAML, CodeBuild é permitido invocar trabalhos com as configurações corretas do projeto. Ao fornecer o ID de execução, CodeBuild mapeará sua compilação para execuções de fluxo de trabalho específicas e interromperá a compilação quando a execução do fluxo de trabalho for cancelada. Para obter mais informações, consulte
github
contexto. runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}nota
Certifique-se de que seu <project-name>nome
corresponda ao nome do projeto que você criou na etapa anterior. Se não corresponder, não CodeBuild processará o webhook e o fluxo de trabalho de GitHub ações poderá travar.
Veja a seguir um exemplo de um fluxo de trabalho de GitHub ações 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!"
-
Você também pode substituir sua imagem e o tipo de computação no rótulo. Isso substituirá as configurações do ambiente em seu projeto. Para substituir suas configurações de ambiente para uma compilação computacional do Amazon EC2, use a seguinte sintaxe:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<image>
-<image-version>
-<instance-size>
Para substituir suas configurações de ambiente para uma compilação de computação Lambda, use a seguinte sintaxe:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>
-<runtime-version>
-<instance-size>
Veja a seguir um exemplo de um fluxo de trabalho de GitHub ações 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!"
nota
Se uma dependência fornecida por GitHub -hosted runners não estiver disponível no CodeBuild ambiente, você poderá instalar a dependência usando GitHub Ações na execução do fluxo de trabalho. Por exemplo, você pode usar a setup-python
Imagens de computação compatíveis
Em seu rótulo, você pode substituir as configurações do ambiente do Amazon EC2 usando os valores nas três primeiras colunas. CodeBuild fornece as seguintes imagens de computação do Amazon EC2:
Imagem | Versão de imagem | Tamanho da instância | Plataforma | Identificador da imagem | Definição |
---|---|---|---|---|---|
|
|
|
Amazon Linux 2 | aws/codebuild/amazonlinux2-x86_64-standard:4.0 |
al2/standard/4.0 |
|
|
Amazon Linux 2023 | aws/codebuild/amazonlinux2-x86_64-standard:5.0 |
al2/standard/5.0 |
|
|
|
|
Amazon Linux 2 | aws/codebuild/amazonlinux2-aarch64-standard:2.0 |
al2/aarch64/standard/2.0 |
|
|
Amazon Linux 2023 | aws/codebuild/amazonlinux2-aarch64-standard:3.0 |
al2/aarch64/standard/3.0 |
|
|
|
|
Ubuntu 20.04 | aws/codebuild/standard:5.0 |
ubuntu/standard/5.0 |
|
|
Ubuntu 22.04 | aws/codebuild/standard:6.0 |
ubuntu/standard/6.0 |
|
|
|
Ubuntu 22.04 | aws/codebuild/standard:7.0 |
ubuntu/standard/7.0 |
|
|
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-1.0 |
N/D |
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-2.0 |
N/D | |
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-3.0 |
N/D |
Além disso, você pode substituir as configurações do seu ambiente Lambda usando os valores a seguir. Para obter mais informações sobre a computação CodeBuild Lambda, consulte Trabalhando com. Trabalhando com AWS Lambda computação em AWS CodeBuild CodeBuild é compatível com as seguintes imagens de computação Lambda:
Tipo de ambiente | Versão Runtime | Tamanho da instância |
---|---|---|
|
|
|
|
Para obter mais informações, consulte Modos e tipos de computação do ambiente de compilação e Imagens do Docker fornecidas por CodeBuild.
Etapa 3: analise seus resultados
Sempre que ocorre a execução de um fluxo de trabalho do GitHub Actions, CodeBuild receberia os eventos do trabalho do fluxo de trabalho por meio do webhook. Para cada trabalho no fluxo de trabalho, CodeBuild inicia uma compilação para executar um executor de ações efêmero GitHub . O executor é responsável por executar uma única tarefa de fluxo de trabalho. Depois que o trabalho for concluído, o executor e o processo de construção associado serão encerrados imediatamente.
Para visualizar os registros de trabalhos do seu fluxo de trabalho, navegue até seu repositório GitHub, escolha Ações, escolha o fluxo de trabalho desejado e, em seguida, escolha o trabalho específico do qual você gostaria de revisar os registros.
Você pode revisar os rótulos solicitados no registro enquanto o trabalho está esperando para ser realizado por um executor auto-hospedado. CodeBuild
![](images/hello-world-loading.png)
Depois que o trabalho for concluído, você poderá visualizar o registro do trabalho.
![](images/hello-world-log.png)
Sobre o CodeBuild executor de GitHub ações hospedado
Quando devo incluir as substituições de imagem e instância no rótulo?
Você pode incluir as substituições de imagem e instância no rótulo para especificar um ambiente de criação diferente para cada um dos trabalhos do fluxo de trabalho do GitHub Actions. Isso pode ser feito sem a necessidade de criar vários CodeBuild projetos ou webhooks. Por exemplo, isso é útil quando você precisa usar uma matriz para seus trabalhos de fluxo de trabalho
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.os }} strategy: matrix: os: [arm-3.0-small, al2-5.0-large] steps: - run: echo "Hello World!"
nota
As aspas podem ser necessárias se houver runs-on
vários rótulos contendo o contexto de GitHub ações.
Posso usar AWS CloudFormation esse recurso?
Sim, você pode incluir um grupo de filtros em seu AWS CloudFormation modelo que especifica um filtro de eventos de trabalho do fluxo de trabalho do GitHub Actions no webhook do seu projeto.
Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED
Para ter mais informações, consulte Filtrar eventos de GitHub webhook ()AWS CloudFormation.
Se precisar de ajuda para configurar as credenciais do projeto em seu AWS CloudFormation modelo, consulte AWS::CodeBuild::SourceCredentialo Guia do AWS CloudFormation usuário para obter mais informações.
Quais regiões oferecem suporte ao uso de um executor CodeBuild de GitHub ações hospedado?
CodeBuildOs executores de GitHub ações hospedados são suportados em todas as CodeBuild regiões. Para obter mais informações sobre Regiões da AWS onde CodeBuild está disponível, consulte AWS Serviços por região
Quais plataformas oferecem suporte ao uso de um executor CodeBuild de GitHub ações hospedado?
CodeBuildexecutores de GitHub ações hospedados são compatíveis tanto com o Amazon AWS LambdaEC2 quanto com a computação. Você pode usar as seguintes plataformas: Amazon Linux 2, Amazon Linux 2023, Ubuntu e Windows Server Core 2019. Para obter mais informações, consulte Imagens de computação do EC2 e Imagens de computação do Lambda.
Solução de problemas: Como faço para solucionar problemas se o webhook não estiver funcionando?
Problema: Seu webhook não está funcionando ou seu trabalho de fluxo de trabalho está pendente. GitHub
Possível causa: seu evento de trabalhos do webhook Workflow pode não estar conseguindo acionar uma compilação. Examine os registros de respostas para ver a resposta ou a mensagem de erro.
Solução recomendada: Para depurar esse erro, use as instruções a seguir.
-
Abra o GitHub console em
https://github.com/
para ver as configurações do webhook do seu repositório. Nesta página, você verá um webhook que foi criado para o seu repositório.user-name
/repository-name
/settings/hooks -
Escolha Editar e confirme se o webhook está habilitado para fornecer eventos de trabalhos do Workflow.
-
Navegue até a guia Entregas recentes, encontre o
workflow_job.queued
evento correspondente e expanda o evento. -
Revise o campo de rótulos no Payload e verifique se está conforme o esperado.
-
Por fim, revise a guia Resposta, pois ela contém a resposta ou a mensagem de erro retornada de CodeBuild.