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á.
Substituições de rótulos suportadas com o CodeBuild-hosted GitHub executor de ações
No YAML do fluxo de trabalho de GitHub ações, você pode fornecer uma variedade de substituições de rótulos que modificam sua construção de executor auto-hospedado. Todas as compilações não reconhecidas pelo CodeBuild serão ignoradas, mas não falharão em sua solicitação de webhook. O fluxo de trabalho YAML a seguir define dois trabalhos: job1 usa substituições de imagem, tamanho da instância, frota e especificação de construção e usa somente uma substituição de imagem. job2 Dê a cada trabalho um rótulo exclusivo (job1ejob2) para que GitHub encaminhe cada trabalho para o executor criado para ele:
name: Hello World on: [push] jobs: job1: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:arm-3.0 - instance-size:small - fleet:myFleet - buildspec-override:true - job1 steps: - run: echo "Hello from Job 1!" job2: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:linux-5.0 - job2 steps: - run: echo "Hello from Job 2!"
Você também pode usar uma estratégia de matriz para executar um único trabalho em várias configurações. As expansões de uma única tarefa de matriz sempre têm o mesmo número de rótulos, portanto, o problema de correspondência de executores não as afeta. No entanto, se a execução de um fluxo de trabalho contiver mais de um trabalho de matriz, dê a cada trabalho de matriz seu próprio rótulo personalizado exclusivo (por exemplo, matrix-job-1 ematrix-job-2) para que GitHub não corresponda um trabalho a um executor criado para um trabalho de matriz diferente:
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:${{ matrix.os }} - instance-size:${{ matrix.size }} - fleet:myFleet - buildspec-override:true - matrix-job-1 strategy: matrix: include: - os: arm-3.0 size: small - os: linux-5.0 size: large steps: - run: echo "Hello World!"
nota
Se seu trabalho de fluxo de trabalho estiver suspenso GitHub, consulte Solucionar problemas do webhook Uso de rótulos personalizados para encaminhar trabalhos
codebuild-(obrigatório)<project-name>-${{github.run_id}}-${{github.run_attempt}}
Exemplo:
codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}-
Obrigatório para todos os YAMLs do fluxo de trabalho de GitHub ações.
<project name>deve ser igual ao nome do projeto para o qual o webhook do executor auto-hospedado está configurado.
image:<environment-type>-<image-identifier>
Exemplo:
image:arm-3.0-
Substitui a imagem e o tipo de ambiente usados ao iniciar a compilação do executor auto-hospedado com uma imagem selecionada. Para saber mais sobre os valores compatíveis, consulte Calcule imagens compatíveis com o CodeBuild-hosted GitHub executor de ações.
Para substituir a imagem e o tipo de ambiente usados por uma imagem personalizada, use
image:custom-<environment-type>-<custom-image-identifier>Exemplo:
image:custom-arm-public.ecr.aws/codebuild/amazonlinux-aarch64-standard:3.0nota
Se a imagem personalizada residir em um registro privado, consulte Configurar uma credencial de registro privada para executores auto-hospedados.
instance-size:<instance-size>
Exemplo:
instance-size:medium-
Substitui o tipo de instância usado ao iniciar a compilação do executor auto-hospedado. Para saber mais sobre os valores compatíveis, consulte Calcule imagens compatíveis com o CodeBuild-hosted GitHub executor de ações.
fleet:<fleet-name>
Exemplo:
fleet:myFleet-
Substitui as configurações de frota definidas no projeto para usar a frota especificada. Para obter mais informações, consulte Executar compilações em frotas de capacidade reservada.
buildspec-override:<boolean>
Exemplo:
buildspec-override:true-
Permite que a compilação execute comandos buildspec nas fases
INSTALL,PRE_BUILDePOST_BUILDse definida comotrue.
(recomendado quando a execução de um fluxo de trabalho tem várias tarefas)<unique-label>
Exemplo:
job1-
Um rótulo personalizado que você define e que nenhum outro trabalho na mesma execução do fluxo de trabalho usa. Atribuir a cada tarefa um rótulo exclusivo garante que cada tarefa seja GitHub direcionada somente para o executor que foi criado para ela. Sem isso, quando trabalhos na mesma execução de fluxo de trabalho têm números diferentes de substituições de rótulos, um trabalho com menos rótulos pode ser escolhido por um executor criado para um trabalho com mais rótulos, o que deixa o segundo trabalho sem um executor. Para obter mais informações, consulte Solucionar problemas do webhook.
Substituição de etiqueta única
CodeBuild permite que você forneça várias substituições em um único rótulo usando o seguinte:
nota
Como todas as substituições são combinadas em um único rótulo, o executor de cada trabalho se registra com exatamente um rótulo. Isso significa que o problema de correspondência de vários executores de tarefas descrito em Solucionar problemas do webhook não pode ocorrer com esse formato, mesmo sem um rótulo exclusivo em cada trabalho. Use o formato de rótulo único se você preferir esse comportamento e seus trabalhos precisarem apenas das substituições que ele suporta. Não o use quando precisar de uma substituição que ele não suporte. Por exemplo, imagens personalizadas (incluindo imagens em um registro privado) só podem ser especificadas usando o formato de image:custom- etiqueta. Para essas substituições, use o formato de rótulo separado descrito anteriormente neste tópico.<environment-type>-<custom-image-identifier>
-
Para substituir suas configurações de ambiente para uma EC2/Lambda compilação computacional da Amazon, use a seguinte sintaxe:
runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size> -
Para substituir as configurações da frota para a compilação computacional do Amazon EC2, use a seguinte sintaxe:
runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name> -
Para substituir a frota e a imagem usadas para a compilação, use a seguinte sintaxe:
runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name> -
Para executar comandos buildspec durante a compilação,
-with-buildspecpode ser adicionado como sufixo ao rótulo:runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec -
Opcionalmente, você pode fornecer uma substituição do tamanho da instância sem substituir a imagem. Para compilações do Amazon EC2, você pode excluir o tipo de ambiente e o identificador de imagem. Para compilações do Lambda, você pode excluir o identificador da imagem.