AWS CodeBuild - AWS CodePipeline

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á.

AWS CodeBuild

Permite executar compilações e testes como parte do pipeline. Quando você executa uma ação de CodeBuild compilação ou teste, os comandos especificados na especificação de compilação são executados dentro de um CodeBuild contêiner. Todos os artefatos especificados como artefatos de entrada para uma CodeBuild ação estão disponíveis dentro do contêiner que executa os comandos. CodeBuild pode fornecer uma ação de criação ou teste. Para mais informações, consulte o Guia do usuário do AWS CodeBuild.

Quando você usa o CodePipeline assistente no console para criar um projeto de compilação, o projeto de CodeBuild compilação mostra o provedor de origem CodePipeline. Ao criar um projeto de compilação no CodeBuild console, você não pode especificar CodePipeline como provedor de origem, mas adicionar a ação de compilação ao seu pipeline ajusta a origem no CodeBuild console. Para obter mais informações, consulte ProjectSourcea Referência AWS CodeBuild da API.

Tipo de ação

  • Categoria: Build ou Test

  • Proprietário: AWS

  • Fornecedor: CodeBuild

  • Versão: 1

Parâmetros de configuração

ProjectName

Obrigatório: Sim

ProjectNameé o nome do projeto de construção em CodeBuild.

PrimarySource

Obrigatório: Condicional

O valor do PrimarySource parâmetro deve ser o nome de um dos artefatos de entrada para a ação. CodeBuild procura o arquivo de especificação de construção e executa os comandos de especificação de construção no diretório que contém a versão descompactada desse artefato.

Esse parâmetro é necessário se vários artefatos de entrada forem especificados para uma CodeBuild ação. Quando houver apenas um artefato de origem para a ação, o artefato PrimarySource assumirá esse artefato como padrão.

BatchEnabled

Obrigatório: não

O valor booleano do parâmetro BatchEnabled permite que a ação execute várias compilações na mesma execução de compilação.

Quando esta opção está habilitada, a opção CombineArtifacts está disponível.

Para exemplos de funis com compilações em lote ativadas, consulte CodePipeline integração com CodeBuild e compilações em lote.

CombineArtifacts

Obrigatório: não

O valor booleano do parâmetro CombineArtifacts combina todos os artefatos de uma compilação em lote em um único arquivo de artefato para a ação de compilação.

Para usar esta opção, o parâmetro BatchEnabled deve estar ativado.

EnvironmentVariables

Obrigatório: não

O valor desse parâmetro é usado para definir variáveis de ambiente para a CodeBuild ação em seu pipeline. O valor do parâmetro EnvironmentVariables assume a forma de uma matriz JSON de objetos de variáveis de ambiente. Consulte o parâmetro de exemplo em Declaração de ação (exemplo do CodeBuild).

Cada objeto tem três partes, todas são strings:

  • name: o nome ou a chave da variável de ambiente.

  • value: o valor da variável de ambiente. Ao usar o SECRETS_MANAGER tipo PARAMETER_STORE ou, esse valor deve ser o nome de um parâmetro que você já armazenou no AWS Systems Manager Parameter Store ou um segredo que você já armazenou no AWS Secrets Manager, respectivamente.

    nota

    Não recomendamos o uso de variáveis de ambiente para armazenar valores confidenciais, principalmente credenciais da AWS . Quando você usa o CodeBuild console ou a AWS CLI, as variáveis de ambiente são exibidas em texto sem formatação. Para valores confidenciais, recomendamos usar o tipo SECRETS_MANAGER.

  • type: (opcional) o tipo da variável de ambiente. Os valores válidos são PARAMETER_STORE, SECRETS_MANAGER ou PLAINTEXT. Se não especificado, assumirá como padrão PLAINTEXT.

nota

Ao inserir o namevalue, e type para sua configuração de variáveis de ambiente, especialmente se a variável de ambiente contiver a sintaxe da variável de CodePipeline saída, não exceda o limite de 1000 caracteres para o campo de valor da configuração. Um erro de validação será retornado quando esse limite for excedido.

Para obter mais informações, consulte EnvironmentVariablea Referência AWS CodeBuild da API. Para obter um exemplo de CodeBuild ação com uma variável de ambiente que é resolvida com o nome da GitHub ramificação, consulteExemplo: use uma BranchName variável com variáveis de CodeBuild ambiente.

Input artifacts (Artefatos de entrada)

  • Número de artefatos: 1 to 5

  • Descrição: CodeBuild procura o arquivo de especificação de construção e executa os comandos de especificação de construção a partir do diretório do artefato de origem primária. Quando mais de uma fonte de entrada é especificada para a CodeBuild ação, esse artefato deve ser definido usando o parâmetro de configuração da PrimarySource ação em CodePipeline.

    Cada artefato de entrada é extraído para seu próprio diretório, cujos locais são armazenados em variáveis de ambiente. O diretório do artefato de origem primária é disponibilizado com $CODEBUILD_SRC_DIR. Os diretórios de todos os outros artefatos de entrada são disponibilizados com $CODEBUILD_SRC_DIR_yourInputArtifactName.

    nota

    O artefato configurado em seu CodeBuild projeto se torna o artefato de entrada usado pela CodeBuild ação em seu pipeline.

Artefatos de saída

  • Número de artefatos: 0 to 5

  • Descrição: eles podem ser usados para disponibilizar os artefatos definidos no arquivo de especificação de CodeBuild construção para ações subsequentes no pipeline. Quando apenas um artefato de saída estiver definido, esse artefato poderá ser definido diretamente na seção artifacts do arquivo de especificação da compilação. Quando mais de um artefato de saída for especificado, todos os artefatos referenciados devem ser definidos como artefatos secundários no arquivo de especificação de compilação. Os nomes dos artefatos de saída CodePipeline devem corresponder aos identificadores de artefatos no arquivo de especificação de construção.

    nota

    O artefato configurado em seu CodeBuild projeto se torna o artefato CodePipeline de entrada em sua ação de pipeline.

    Se o parâmetro CombineArtifacts for selecionado para compilações em lote, o local do artefato de saída conterá os artefatos combinados de várias compilações processadas na mesma execução.

Variáveis de saída

Esta ação produzirá como variáveis todas as variáveis de ambiente que foram exportadas como parte da compilação. Para obter mais detalhes sobre como exportar variáveis de ambiente, consulte EnvironmentVariableo Guia AWS CodeBuild da API.

Para obter mais informações sobre o uso de variáveis de CodeBuild ambiente em CodePipeline, consulte os exemplos emCodeBuild variáveis de saída de ação. Para obter uma lista das variáveis de ambiente que você pode usar CodeBuild, consulte Variáveis de ambiente em ambientes de compilação no Guia AWS CodeBuild do usuário.

Declaração de ação (exemplo do CodeBuild)

YAML
Name: Build Actions: - Name: PackageExport ActionTypeId: Category: Build Owner: AWS Provider: CodeBuild Version: '1' RunOrder: 1 Configuration: BatchEnabled: 'true' CombineArtifacts: 'true' ProjectName: my-build-project PrimarySource: MyApplicationSource1 EnvironmentVariables: '[{"name":"TEST_VARIABLE","value":"TEST_VALUE","type":"PLAINTEXT"},{"name":"ParamStoreTest","value":"PARAMETER_NAME","type":"PARAMETER_STORE"}]' OutputArtifacts: - Name: MyPipeline-BuildArtifact InputArtifacts: - Name: MyApplicationSource1 - Name: MyApplicationSource2
JSON
{ "Name": "Build", "Actions": [ { "Name": "PackageExport", "ActionTypeId": { "Category": "Build", "Owner": "AWS", "Provider": "CodeBuild", "Version": "1" }, "RunOrder": 1, "Configuration": { "BatchEnabled": "true", "CombineArtifacts": "true", "ProjectName": "my-build-project", "PrimarySource": "MyApplicationSource1", "EnvironmentVariables": "[{\"name\":\"TEST_VARIABLE\",\"value\":\"TEST_VALUE\",\"type\":\"PLAINTEXT\"},{\"name\":\"ParamStoreTest\",\"value\":\"PARAMETER_NAME\",\"type\":\"PARAMETER_STORE\"}]" }, "OutputArtifacts": [ { "Name": "MyPipeline-BuildArtifact" } ], "InputArtifacts": [ { "Name": "MyApplicationSource1" }, { "Name": "MyApplicationSource2" } ] } ] }

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.