View a markdown version of this page

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

Em seu fluxo de trabalho de GitHub ações YAML, você pode fornecer uma variedade de substituições de rótulos que modificam sua compilação de executores auto-hospedados. Todas as compilações não reconhecidas por CodeBuild serão ignoradas, mas não falharão em sua solicitação de webhook. O fluxo de trabalho a seguir, YAML, define dois trabalhos: job1 usa substituições para imagem, tamanho da instância, frota e buildspec, e job2 usa somente uma substituição de imagem. 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 matricial 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 uma tarefa de matriz, atribua a cada tarefa de matriz seu próprio rótulo personalizado exclusivo (por exemplo, matrix-job-1 ematrix-job-2) para que GitHub não corresponda a uma tarefa a um executor criado para uma tarefa 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 e Usando rótulos personalizados para rotear 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ários trabalhos)

  • Exemplo: job1

  • Um rótulo personalizado que você define e que nenhum outro trabalho na mesma execução do fluxo de trabalho usa. A atribuição de um rótulo exclusivo a cada tarefa 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 uma única etiqueta usando o seguinte:

nota

Como todas as substituições são combinadas em uma única etiqueta, o executor de cada tarefa se registra com exatamente uma etiqueta. Isso significa que o problema de correspondência de vários executores de trabalhos 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 suporta. 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 compilação EC2/Lambda 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.