Executar uma compilação (AWS CLI) - 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á.

Executar uma compilação (AWS CLI)

nota

Para usar o CodePipeline para executar uma compilação com o AWS CodeBuild, ignore estas etapas e siga as instruções em Criar um pipeline que use o CodeBuild (AWS CLI).

Para obter mais informações sobre como usar o AWS CLI com o CodeBuild, consulte Referência da linha de comando.

  1. Execute o comando start-build de uma das seguintes maneiras:

    aws codebuild start-build --project-name <project-name>

    Use esta maneira se você quiser executar um build que utiliza a versão mais recente do artefato de entrada de build e as configurações existentes do projeto de build.

    aws codebuild start-build --generate-cli-skeleton

    Use esta maneira se quiser executar uma compilação com uma versão anterior do artefato de entrada da compilação ou se quiser substituir as configurações dos artefatos de saída da compilação, as variáveis de ambiente, o buildspec ou o período de tempo limite padrão da compilação.

  2. Se você executar o comando start-build com a opção --project-name, substitua <project-name> pelo nome do projeto de compilação e avance para a etapa 6 deste procedimento. Para obter uma lista de projetos de build, consulte Visualizar uma lista de nomes de projetos de compilação.

  3. Se você executar o comando start-build com a opção --idempotency-token, um identificador, ou token, exclusivo que diferencia maiúsculas e minúsculas é incluído na solicitação start-build. O token é válido por 5 minutos após a solicitação . Se você repetir a solicitação start-build com o mesmo token, mas alterar um parâmetro, o CodeBuild vai gerar um erro de incompatibilidade de parâmetro.

  4. Se você executar o comando start-build com a opção --generate-cli-skeleton, os dados formatados JSON serão exibidos na saída. Copie os dados para um arquivo (por exemplo, start-build.json) em um local no computador local ou em uma instância na qual a AWS CLI esteja instalada. Altere os dados copiados para corresponder ao seguinte formato, e salve os resultados:

    { "projectName": "projectName", "sourceVersion": "sourceVersion", "artifactsOverride": { "type": "type", "location": "location", "path": "path", "namespaceType": "namespaceType", "name": "artifactsOverride-name", "packaging": "packaging" }, "buildspecOverride": "buildspecOverride", "cacheOverride": { "location": "cacheOverride-location", "type": "cacheOverride-type" }, "certificateOverride": "certificateOverride", "computeTypeOverride": "computeTypeOverride", "environmentTypeOverride": "environmentTypeOverride", "environmentVariablesOverride": { "name": "environmentVariablesOverride-name", "value": "environmentVariablesValue", "type": "environmentVariablesOverride-type" }, "gitCloneDepthOverride": "gitCloneDepthOverride", "imageOverride": "imageOverride", "idempotencyToken": "idempotencyToken", "insecureSslOverride": "insecureSslOverride", "privilegedModeOverride": "privilegedModeOverride", "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride", "reportBuildStatusOverride": "reportBuildStatusOverride", "timeoutInMinutesOverride": "timeoutInMinutesOverride", "sourceAuthOverride": "sourceAuthOverride", "sourceLocationOverride": "sourceLocationOverride", "serviceRoleOverride": "serviceRoleOverride", "sourceTypeOverride": "sourceTypeOverride" }

    Substitua os seguintes espaços reservados:

    • projectName: String necessária. O nome de projeto de build a ser usado neste build.

    • sourceVersion: String opcional. Uma versão do código-fonte a ser compilado, como se segue:

      • Para o Amazon S3, o ID de versão correspondente à versão do arquivo ZIP de entrada que você quer compilar. Se sourceVersion não estiver especificado, a versão mais recente será usada.

      • Para CodeCommit, a ID de confirmação correspondente à versão do código-fonte que você deseja compilar. Se sourceVersion não estiver especificado, o ID de confirmação HEAD da ramificação padrão será usado. (Não é possível especificar um nome de tag para sourceVersion, mas você pode especificar o ID de confirmação da tag.)

      • Para o GitHub, o ID de confirmação, a solicitação, o nome da ramificação ou o nome da tag que corresponda à versão do código-fonte que você deseja compilar. Caso seja especificado, um ID de solicitação deve usar o formato pr/pull-request-ID (por exemplo, pr/25). Se um nome de ramificação for especificado, o ID de confirmação HEAD da ramificação será usado. Se sourceVersion não estiver especificado, o ID de confirmação HEAD da ramificação padrão será usado.

      • Para o Bitbucket, o ID de confirmação, o nome da ramificação ou o nome da tag que corresponda à versão do código-fonte que você deseja compilar. Se um nome de ramificação for especificado, o ID de confirmação HEAD da ramificação será usado. Se sourceVersion não estiver especificado, o ID de confirmação HEAD da ramificação padrão será usado.

    • Os seguintes espaços reservados são para: artifactsOverride.

      • type: opcional. O tipo de artefato de saída de build que sobrescreve neste build aquele definido no projeto de build.

      • location: opcional. O local de artefato de saída de build que sobrescreve neste build aquele definido no projeto de build.

      • path: opcional. O caminho de artefato de saída de build que sobrescreve neste build aquele definido no projeto de build.

      • namespaceType: opcional. O tipo de caminho de artefato de saída de build que sobrescreve neste build aquele definido no projeto de build.

      • name: opcional. O nome de artefato de saída de build que sobrescreve neste build aquele definido no projeto de build.

      • packaging: opcional. O tipo de empacotamento de artefato de saída de build que sobrescreve neste build aquele definido no projeto de build.

    • buildspecOverride: opcional. Uma declaração de buildspec que sobrescreve para esta compilação aquela definida no projeto de compilação. Se estiver definido, esse valor poderá ser uma definição de buildspec em linha ou o caminho para um arquivo buildspec alternativo relativo ao valor da variável de ambiente CODEBUILD_SRC_DIR interna ou o caminho para um bucket do S3. O bucket do S3 deve estar na mesma região da AWS que o projeto de compilação. Especifique o arquivo buildspec usando seu ARN (por exemplo, arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml). Se esse valor não for fornecido ou for definido como uma string vazia, o código-fonte deverá conter um arquivo buildspec.yml em seu diretório raiz. Para obter mais informações, consulte Nome do arquivo buildspec e local de armazenamento.

    • Os seguintes espaços reservados são para: cacheOverride.

      • cacheOverride-location: opcional. O local de um objeto ProjectCache desta compilação que substitui o objeto ProjectCache especificado no projeto de compilação. cacheOverride é opcional e utiliza um objeto ProjectCache. location é necessário em um objeto ProjectCache.

      • cacheOverride-type: opcional. O tipo de um objeto ProjectCache desta compilação que substitui o objeto ProjectCache especificado no projeto de compilação. cacheOverride é opcional e utiliza um objeto ProjectCache. type é necessário em um objeto ProjectCache.

    • certificateOverride: opcional. O nome de um certificado para esse build que substitui o especificado no projeto de build.

    • environmentTypeOverride: opcional. Um tipo de contêiner para esse build que substitui o especificado no projeto de build. A string atual válida é LINUX_CONTAINER.

    • Os seguintes espaços reservados são para: environmentVariablesOverride.

      • environmentVariablesOverride-name: opcional. O nome de uma variável de ambiente no projeto de build, cujo valor você deseja sobrescrever para este build.

      • environmentVariablesOverride-type: opcional. O tipo de variável de ambiente no projeto de compilação cujo valor você deseja substituir para essa compilação.

      • environmentVariablesValue: opcional. O valor da variável de ambiente definida no projeto de compilação que você deseja substituir para essa compilação.

    • gitCloneDepthOverride: opcional. O valor de Git clone depth no projeto de compilação que você deseja substituir para esta compilação. Se o tipo de origem é o Amazon S3, esse valor não é compatível.

    • imageOverride: opcional. O nome de uma imagem para esse build que substitui o especificado no projeto de build.

    • idempotencyToken: opcional. Uma string que serve como token para especificar que a solicitação de build é idempotente. Você pode escolher qualquer string com 64 caracteres ou menos. O token é válido por 5 minutos após a solicitação start-build. Se você repetir a solicitação start-build com o mesmo token, mas alterar um parâmetro, o CodeBuild vai gerar um erro de incompatibilidade de parâmetro.

    • insecureSslOverride: booleano opcional que especifica substituir ou não a configuração de TLS insegura especificada no projeto de compilação. A configuração de TLS insegura determina ignorar ou não avisos do TLS ao conectar-se ao código-fonte do projeto. Essa substituição se aplica somente se a origem do build for GitHub Enterprise Server.

    • privilegedModeOverride: booleano opcional. Se definido como verdadeiro, o build substitui o modo privilegiado no projeto de build.

    • queuedTimeoutInMinutesOverride: número inteiro opcional que especifica o número de minutos pelos quais uma compilação tem permissão para ser colocada em fila antes de atingir o tempo limite. O valor mínimo é de cinco minutos e o valor máximo é 480 minutos (oito horas).

    • reportBuildStatusOverride: valor booliano opcional que especifica o envio dos status inicial e final de uma compilação ao seu provedor de origem. Se você definir esse valor com um provedor de origem que não seja o GitHub, GitHub Enterprise Server ou o Bitbucket, uma invalidInputException será lançada.

    • sourceAuthOverride: string opcional. Um tipo de autorização para este build que sobrescreve a definida no projeto build. Essa substituição se aplica somente se a origem do projeto de compilação for Bitbucket ou GitHub.

    • sourceLocationOverride: string opcional. Um local que sobrescreve neste build o local de origem definido no projeto de build.

    • serviceRoleOverride: string opcional. O nome de uma função de serviço para esse build que substitui o especificado no projeto de build.

    • sourceTypeOverride: string opcional. Um tipo de origem neste build que sobrescreve a origem definida no projeto de build. As strings válidas são NO_SOURCE, CODECOMMIT, CODEPIPELINE, GITHUB, S3, BITBUCKET, e GITHUB_ENTERPRISE.

    • timeoutInMinutesOverride: Número opcional. O número de minutos de tempo limite do build que sobrescreve para este build aquele definido no projeto de build.

    Recomendamos armazenar uma variável de ambiente com um valor confidencial, como um ID de chave de acesso da AWS, uma chave de acesso secreta da AWS ou uma senha como um parâmetro no Amazon EC2 Systems Manager Parameter Store. O CodeBuild poderá usar um parâmetro armazenado no Amazon EC2 Systems Manager Parameter Store apenas se o nome do parâmetro começar com /CodeBuild/ (por exemplo, /CodeBuild/dockerLoginPassword). É possível usar o console do CodeBuild para criar um parâmetro no Amazon EC2 Systems Manager. Escolha Create a parameter (Criar um parâmetro) e siga as instruções. (Nessa caixa de diálogo, em Chave do KMS, é possível especificar o ARN de uma chave do AWS KMS na conta. O Amazon EC2 Systems Manager usa essa chave para criptografar o valor do parâmetro durante o armazenamento e descriptografá-lo durante a recuperação.) Se você usar o console do CodeBuild para criar um parâmetro, o console começará o nome do parâmetro com /CodeBuild/, pois ele está sendo armazenado. No entanto, se você usar o console do Amazon EC2 Systems Manager Parameter Store para criar um parâmetro, deverá iniciar o nome do parâmetro com /CodeBuild/ e definir Tipo como String segura. Para obter mais informações, consulte AWS Systems Manager Parameter Store e Walkthrough: Create and test a String parameter (console) no Guia do usuário do Amazon EC2 Systems Manager.

    Se o projeto de compilação se referir a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store, o perfil de serviço do projeto de compilação deverá permitir a ação ssm:GetParameters. Se você tiver escolhido Criar um perfil de serviço na conta antes, o CodeBuild incluirá essa ação no perfil de serviço padrão para o projeto de compilação automaticamente. No entanto, se escolher Choose an existing service role from your account, você deverá incluir essa ação na função de serviço separadamente.

    As variáveis de ambiente definidas por você substituem variáveis de ambiente existentes. Por exemplo, se a imagem de Docker já contiver uma variável de ambiente chamada MY_VAR com um valor de my_value e você definir uma variável de ambiente chamada MY_VAR com um valor de other_value, my_value será substituído por other_value. Da mesma maneira, se a imagem de Docker já contiver uma variável de ambiente chamada PATH com um valor de /usr/local/sbin:/usr/local/bin e você definir uma variável de ambiente chamada PATH com um valor de $PATH:/usr/share/ant/bin, /usr/local/sbin:/usr/local/bin será substituído pelo valor literal $PATH:/usr/share/ant/bin.

    Não defina nenhuma variável de ambiente com um nome que comece com CODEBUILD_. Este prefixo está reservado para uso interno da .

    Se uma variável de ambiente com o mesmo nome for definida em vários locais, o valor da variável de ambiente será determinado como se segue:

    • O valor na chamada de operação de início de build tem a maior prioridade.

    • O valor na definição de projeto de build tem a precedência seguinte.

    • O valor na declaração do arquivo buildspec tem a menor prioridade.

    Para obter informações sobre valores válidos para esses espaços reservados, consulte Criar um projeto de compilação (AWS CLI). Para obter uma lista das últimas configurações de um projeto de compilação, consulte Visualizar detalhes de um projeto de compilação.

  5. Alterne para o diretório que contenha o arquivo que você acabou de salvar e execute o comando start-build novamente.

    aws codebuild start-build --cli-input-json file://start-build.json
  6. Se bem-sucedidos, dados semelhantes aos descritos no procedimento Para executar a compilação serão exibidos na saída.

Para trabalhar com informações detalhadas sobre este build, anote o valor id da saída e consulte Visualizar detalhes de compilação (AWS CLI).