View a markdown version of this page

Substituições de rótulos suportadas com o CodeBuild-hosted GitHub executor de ações - 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á.

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-<project-name>-${{github.run_id}}-${{github.run_attempt}}(obrigatório)

  • 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>

instance-size:<instance-size>

fleet:<fleet-name>

buildspec-override:<boolean>

  • Exemplo: buildspec-override:true

  • Permite que a compilação execute comandos buildspec nas fases INSTALL, PRE_BUILD e POST_BUILD se definida como true.

<unique-label>(recomendado quando a execução de um fluxo de trabalho tem várias tarefas)

  • 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-<environment-type>-<custom-image-identifier> etiqueta. Para essas substituições, use o formato de rótulo separado descrito anteriormente neste tópico.

  • 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-buildspec pode 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.