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á.
Tutorial: Configurar um executor CodeBuild Buildite hospedado
Este tutorial mostra como configurar seus CodeBuild projetos para executar trabalhos do Buildkite. Para obter mais informações sobre como usar o Buildkite com, consulte. CodeBuild Executador autogerenciado do Buildkite em AWS CodeBuild
Para concluir este tutorial, você deve primeiramente:
-
Ter acesso a uma organização do Buildkite. Consulte mais informações sobre como configurar uma conta e uma organização do Buildkite em Getting Started Tutorial
. -
Crie um pipeline, um cluster e uma fila do Buildkite configurados para usar executores auto-hospedados. Consulte mais informações sobre como configurar esses recursos em Buildkite Pipeline Setup Tutorial
.
Etapa 1: gerar um token de agente do Buildkite
Nesta etapa, você gerará um token de agente no Buildkite que será usado para autenticar os executores auto-hospedados. CodeBuild Consulte mais informações sobre esse recurso em Buildkite Agent Tokens
Como gerar um token de agente do Buildkite
-
No cluster do Buildkite, escolha Tokens de agente e Novo token.
-
Adicione uma descrição ao token e clique em Criar token.
-
Salve o valor do token do agente, pois ele será usado posteriormente durante a configuração do CodeBuild projeto.
Etapa 2: criar um CodeBuild projeto com um webhook
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 auto-hospedado. Para obter informações, consulte Criar um projeto de compilação (console) e Executar uma compilação (console).
-
Em Configuração do projeto, selecione Projeto de executor. Em Executor:
-
Em Provedor de executor, escolha Buildkite.
-
Em Token de agente do Buildkite, escolha Criar um token de agente usando a página de criação secreta. Você será solicitado a criar um novo segredo AWS Secrets Manager com um valor secreto igual ao token do agente Buildkite que você gerou acima.
-
(Opcional) Se você quiser usar credenciais CodeBuild gerenciadas para seu trabalho, selecione o provedor do repositório de origem do seu trabalho nas opções de credenciais de origem do Buildkite e verifique se as credenciais estão configuradas para sua conta. Além disso, verifique se o pipeline do Buildkite usa o Checkout via HTTPS.
nota
O Buildkite requer credenciais de origem no ambiente de compilação para extrair a origem do trabalho. Consulte as opções de credenciais de origem disponíveis em Autenticar o Buildkite em um repositório privado.
-
-
(Opcional) Em 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 nas etapas de YAML do Buildkite. Para obter mais informações, consulte Etapa 4: atualizar as etapas do pipeline do Buildkite.
-
-
(Opcional) Em Buildspec:
-
O buildspec será ignorado por padrão, a menos que
buildspec-override: "true"seja adicionado como rótulo. Em vez disso, o CodeBuild substituirá para usar comandos que configurarão o executor auto-hospedado.nota
CodeBuild não oferece suporte a arquivos buildspec para compilações de executores auto-hospedados do Buildkite. Para especificações de construção em linha, você precisará habilitar git-credential-helperem seu buildspec se tiver configurado credenciais de origem gerenciada CodeBuild
-
-
-
Continue com os valores padrão e escolha Criar projeto de compilação.
-
Salve o URL da carga útil e os valores de Segredo no pop-up Criar webhook. Siga as instruções no pop-up para criar um webhook da organização do Buildkite ou continue para a próxima seção.
Etapa 3: Crie um CodeBuild webhook no Buildkite
Nesta etapa, você usará os valores Payload URL e Secret do CodeBuild webhook para criar um novo webhook no Buildkite. Esse webhook será usado para acionar compilações CodeBuild quando um trabalho válido do Buildkite for iniciado.
Como criar um webhook no Buildkite
-
Acesse a página de Configurações da organização do Buildkite.
-
Em Integrações, selecione Serviços de notificação.
-
Escolha Adicionar ao lado da caixa Webhook. Na página Adicionar notificação de webhook, use a seguinte configuração:
-
Em URL do webhook, adicione o valor salvo de URL de carga útil.
-
Em Token, verifique se a opção Enviar o token como X-Buildkite-Token está selecionada. Adicione o valor de Segredo do webhook ao campo Token.
-
Em, verifique se a opção Enviar o token como X-Buildkite-Token está selecionada. Adicione o valor de Segredo do webhook ao campo Token.
-
Em Eventos, selecione o evento
job.scheduleddo webhook. -
(Opcional) Em Pipelines, você pode optar por acionar somente compilações para um pipeline específico.
-
-
Escolha Adicionar notificação de webhook.
Etapa 4: atualizar as etapas do pipeline do Buildkite
Nessa etapa, você atualiza as etapas do pipeline do Buildkite para adicionar os rótulos necessários e as substituições opcionais. Consulte a lista completa de versões compatíveis em Substituições de rótulos suportadas pelo executor Buildkite CodeBuild hospedado.
Atualizar as etapas do pipeline
-
Acesse a página de etapas do pipeline do Buildkite selecionando o pipeline do Buildkite, escolhendo Configurações e Etapas.
Se ainda não tiver feito isso, escolha Converter em etapas do YAML.
-
No mínimo, você precisará especificar uma tag do agente Buildkite
referenciando o nome do seu pipeline. CodeBuild O nome do projeto é necessário para vincular as configurações AWS relacionadas do seu trabalho do Buildkite a um projeto específico. CodeBuild Ao incluir o nome do projeto no YAML, CodeBuild é permitido invocar trabalhos com as configurações corretas do projeto. agents: project: "codebuild-<project name>"Veja a seguir um exemplo de etapas do pipeline do Buildkite com apenas a tag do rótulo do projeto:
agents: project: "codebuild-myProject" steps: - command: "echo \"Hello World\""Você também pode substituir a imagem e o tipo de computação no rótulo. Para obter uma lista das imagens disponíveis, consulte Imagens de computação suportadas pelo executor CodeBuild Buildkite hospedado. O tipo de computação e a imagem no rótulo substituirão as configurações do ambiente no projeto. Para substituir suas configurações de ambiente para uma compilação de computação CodeBuild EC2 ou Lambda, use a seguinte sintaxe:
agents: project: "codebuild-<project name>" image: "<environment-type>-<image-identifier>" instance-size: "<instance-size>"Veja a seguir um exemplo de etapas do pipeline do Buildkite com substituições de imagens e tamanhos de instância:
agents: project: "codebuild-myProject" image: "arm-3.0" instance-size: "small" steps: - command: "echo \"Hello World\""Você pode substituir a frota usada para a compilação no rótulo. Isso substituirá as configurações de frota definidas no projeto para usar a frota especificada. Consulte mais informações em Executar compilações em frotas de capacidade reservada.
Para substituir as configurações da sua frota para uma compilação EC2 computacional da Amazon, use a seguinte sintaxe:
agents: project: "codebuild-<project name>" fleet: "<fleet-name>"Para substituir a frota e a imagem usadas para a compilação, use a seguinte sintaxe:
agents: project: "codebuild-<project name>" fleet: "<fleet-name>" image: "<environment-type>-<image-identifier>"Veja a seguir um exemplo de etapas do pipeline do Buildkite com substituições de frota e imagem:
agents: project: "codebuild-myProject" fleet: "myFleet" image: "arm-3.0" steps: - command: "echo \"Hello World\"" -
Você pode optar por executar comandos de buildspec em linha durante a compilação do executor do Buildkite auto-hospedado (consulte mais detalhes em Executar os comandos de buildspec nas fases INSTALL, PRE_BUILD e POST_BUILD). Para especificar que a CodeBuild compilação deve executar comandos buildspec durante a compilação do executor autohospedado do Buildkite, use a seguinte sintaxe:
agents: project: "codebuild-<project name>" buildspec-override: "true"Veja a seguir um exemplo de um pipeline do Buildkite com uma substituição de buildspec:
agents: project: "codebuild-myProject" buildspec-override: "true" steps: - command: "echo \"Hello World\"" -
Opcionalmente, você pode fornecer rótulos fora dos CodeBuild compatíveis. Esses rótulos serão ignorados com o objetivo de substituir os atributos da compilação, mas não falharão na solicitação do webhook. Por exemplo, adicionar
myLabel: “testLabel"como rótulo não impedirá a execução da compilação.
Etapa 5: analise seus resultados
Sempre que um trabalho do Buildkite for iniciado em seu pipeline, CodeBuild receberá um evento de webhook por meio do job.scheduled webhook do Buildkite. Para cada trabalho em sua compilação do Buildkite, CodeBuild iniciará uma compilação para executar um executor efêmero do Buildkite. O executor é responsável por executar um único trabalho do Buildkite. Depois que o trabalho for concluído, o executor e o processo de compilação associado serão encerrados imediatamente.
Para visualizar os logs de trabalho do fluxo de trabalho, acesse o pipeline do Buildkite e selecione a compilação mais recente (você pode acionar uma nova compilação escolhendo Nova compilação). Depois que a CodeBuild compilação associada a cada um dos seus trabalhos for iniciada e retomada, você deverá ver os registros do trabalho no console do Buildkite
Autenticar o Buildkite em um repositório privado
Se você tem um repositório privado configurado no pipeline do Buildkite, o Buildkite exige permissões adicionais no ambiente de compilação
Para autenticar com CodeBuild
CodeBuild oferece tratamento gerenciado de credenciais para tipos de fontes compatíveis. Para usar as credenciais de CodeBuild origem para extrair o repositório de origem do seu trabalho, você pode usar as seguintes etapas:
-
No CodeBuild console, navegue até Editar projeto ou crie um novo CodeBuild projeto usando as etapas emEtapa 2: criar um CodeBuild projeto com um webhook.
-
Em Opções de credencial de origem do Buildkite, selecione o provedor do repositório de origem do trabalho.
-
Se você quiser usar CodeBuild credenciais no nível da conta, verifique se elas estão configuradas corretamente. Além disso, se seu projeto tiver um buildspec embutido configurado, verifique se ele está habilitado. git-credential-helper
-
Se você quiser usar CodeBuild credenciais em nível de projeto, selecione Usar credenciais de substituição somente para este projeto e configure credenciais para seu projeto.
-
-
Nas configurações do pipeline do Buildkite, acesse Configurações do repositório. Defina as configurações de checkout do repositório de origem como Checkout via HTTPS
Como fazer a autenticação com os segredos do Buildkite
O Buildkite mantém um plug-in de ssh-checkout
-
Gere uma chave SSH pública e privada usando o endereço de e-mail, por exemplo
ssh-keygen -t rsa -b 4096 -C "myEmail@address.com" -
Adicione a chave pública ao repositório de origem privado. Por exemplo, você pode seguir este guia
para adicionar uma chave a uma GitHub conta. -
Adicione um novo segredo de chave SSH
ao cluster do Buildkite. No cluster do Buildkite, selecione Segredos → Novo segredo. Adicione um nome para o segredo no campo Chave e adicione a chave SSH privada no campo Valor:
-
No pipeline do Buildkite, acesse as configurações do repositório e defina o checkout para usar SSH.
-
Atualize as etapas do YAML do pipeline para usar o plug-in
git-ssh-checkout. Por exemplo, o arquivo YAML do pipeline a seguir usa a ação de checkout com a chave secreta do Buildkite acima:agents: project: "codebuild-myProject" steps: - command: "npm run build" plugins: - git-ssh-checkout#v0.4.1: ssh-secret-key-name: 'SOURCE_SSH_KEY' -
Ao executar um trabalho de execução auto-hospedado do Buildkite CodeBuild, o Buildkite agora usará automaticamente seu valor secreto configurado ao extrair seu repositório privado
Opções de configuração do executor
É possível especificar as seguintes variáveis de ambiente na configuração do projeto para modificar a configuração dos executores auto-hospedados:
-
CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN: CodeBuild buscará o valor secreto configurado como o valor dessa variável de ambiente para registrar o agente AWS Secrets Manager executor auto-hospedado do Buildkite. Essa variável de ambiente deve ser do tipoSECRETS_MANAGERe o valor deve ser o nome do segredo no Secrets Manager. Uma variável de ambiente do token do agente do Buildkite é necessária para todos os projetos do executor do Buildkite. -
CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE: por padrão, CodeBuild carregará as credenciais de origem em nível de conta ou projeto no ambiente de compilação, pois essas credenciais são usadas pelo agente Buildkite para extrair o repositório de origem do trabalho. Para desabilitar esse comportamento, você pode adicionar essa variável de ambiente ao projeto com o valor definido comotrue, o que impedirá que as credenciais de origem sejam carregadas no ambiente de compilação.