AWS CodePipeline amostras para CodeBuild - 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á.

AWS CodePipeline amostras para CodeBuild

Esta seção descreve exemplos de integrações entre CodePipeline e. CodeBuild

Amostra Descrição

Amostras de CodeBuild integrações CodePipeline /e compilações em lote

Esses exemplos demonstram como usar AWS CodePipeline para criar um projeto de compilação que usa compilações em lote.

Amostra de uma CodeBuild integração CodePipeline/com várias fontes de entrada e artefatos de saída

Este exemplo demonstra como usar AWS CodePipeline para criar um projeto de construção que usa várias fontes de entrada para criar vários artefatos de saída.

Amostras de CodeBuild integrações CodePipeline /e compilações em lote

AWS CodeBuild suporta compilações em lote. Os exemplos a seguir demonstram como usar AWS CodePipeline para criar um projeto de compilação que usa compilações em lote.

Você pode usar um arquivo JSON formatado em -que define a estrutura do seu pipeline e, em seguida, usá-lo com o AWS CLI para criar o pipeline. Para obter mais informações, consulte AWS CodePipeline Pipeline structure reference no Guia do usuário do AWS CodePipeline .

Compilação em lote com artefatos individuais

Use o JSON arquivo a seguir como exemplo de uma estrutura de pipeline que cria uma construção em lote com artefatos separados. Para habilitar compilações em lote CodePipeline, defina o BatchEnabled parâmetro do configuration objeto comotrue.

{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "<my-input-bucket-name>", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "<my-other-input-bucket-name>", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "build1" }, { "name": "build1_artifact1" }, { "name": "build1_artifact2" }, { "name": "build2_artifact1" }, { "name": "build2_artifact2" } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<AWS-CodePipeline-internal-bucket-name>" }, "name": "my-pipeline-name", "version": 1 } }

Veja a seguir um exemplo de um arquivo CodeBuild buildspec que funcionará com essa configuração de pipeline.

version: 0.2 batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM phases: build: commands: - echo 'file' > output_file artifacts: files: - output_file secondary-artifacts: artifact1: files: - output_file artifact2: files: - output_file

Os nomes dos artefatos de saída especificados no JSON arquivo do pipeline devem corresponder ao identificador das compilações e artefatos definidos no seu arquivo buildspec. A sintaxe é buildIdentifier para os artefatos primários, e buildIdentifier_artifactIdentifier para os artefatos secundários.

Por exemplo, para o nome do artefato de saídabuild1, CodeBuild fará o upload do artefato primário de build1 para o local de. build1 Para o nome de saídabuild1_artifact1, CodeBuild fará o upload do artefato secundário artifact1 de build1 para o local debuild1_artifact1, e assim por diante. Se somente um local de saída for especificado, o nome deverá ser buildIdentifier somente.

Depois de criar o JSON arquivo, você pode criar seu pipeline. Use o AWS CLI para executar o comando create-pipeline e passar o arquivo para o parâmetro. --cli-input-json Para obter mais informações, consulte Criar um pipeline (CLI) no Guia do AWS CodePipeline usuário.

Compilação em lote com artefatos combinados

Use o JSON arquivo a seguir como exemplo de uma estrutura de pipeline que cria uma construção em lote com artefatos combinados. Para habilitar compilações em lote CodePipeline, defina o BatchEnabled parâmetro do configuration objeto comotrue. Para combinar os artefatos de compilação no mesmo local, defina o parâmetro CombineArtifacts do objeto configuration como true.

{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "<my-input-bucket-name>", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "<my-other-input-bucket-name>", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "output1 " } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true", "CombineArtifacts": "true" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<AWS-CodePipeline-internal-bucket-name>" }, "name": "my-pipeline-name", "version": 1 } }

Veja a seguir um exemplo de um arquivo CodeBuild buildspec que funcionará com essa configuração de pipeline.

version: 0.2 batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM phases: build: commands: - echo 'file' > output_file artifacts: files: - output_file

Se os artefatos combinados estiverem habilitados para a construção em lote, haverá somente uma saída permitida. CodeBuild combinará os artefatos primários de todas as compilações em um único ZIP arquivo.

Depois de criar o JSON arquivo, você pode criar seu pipeline. Use o AWS CLI para executar o comando create-pipeline e passar o arquivo para o parâmetro. --cli-input-json Para obter mais informações, consulte Criar um pipeline (CLI) no Guia do AWS CodePipeline usuário.

Amostra de uma CodeBuild integração CodePipeline/com várias fontes de entrada e artefatos de saída

Um AWS CodeBuild projeto pode usar mais de uma fonte de entrada. Ele também pode criar mais de um artefato de saída. Este exemplo demonstra como usar AWS CodePipeline para criar um projeto de construção que usa várias fontes de entrada para criar vários artefatos de saída. Para obter mais informações, consulte Várias fontes de entrada e exemplos de artefatos de saída.

Você pode usar um arquivo JSON formatado em -que define a estrutura do seu pipeline e, em seguida, usá-lo com o AWS CLI para criar o pipeline. Use o JSON arquivo a seguir como exemplo de uma estrutura de pipeline que cria uma compilação com mais de uma fonte de entrada e mais de um artefato de saída. Mais adiante neste exemplo, você verá como este arquivo especifica as várias entradas e saídas. Para obter mais informações, consulte a referência da estrutura do CodePipeline pipeline no Guia AWS CodePipeline do usuário.

{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "my-input-bucket-name", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "my-other-input-bucket-name", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "AWS CodeBuild" }, "outputArtifacts": [ { "name": "artifact1" }, { "name": "artifact2" } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "AWS-CodePipeline-internal-bucket-name" }, "name": "my-pipeline-name", "version": 1 } }

Neste JSON arquivo:

  • Uma das suas origens de entrada deve ser designada como PrimarySource. Essa fonte é o diretório em que CodeBuild procura e executa seu arquivo buildspec. A palavra-chave PrimarySource é usada para especificar a fonte primária na configuration seção do CodeBuild estágio no JSON arquivo.

  • Cada origem de entrada é instalada em seu próprio diretório. Esse diretório é armazenado na variável de ambiente interna $CODEBUILD_SRC_DIR para a origem principal e $CODEBUILD_SRC_DIR_yourInputArtifactName para todas as outras origens. Para o pipeline neste exemplo, os dois diretórios da origem de entrada são $CODEBUILD_SRC_DIR e $CODEBUILD_SRC_DIR_source2. Para obter mais informações, consulte Variáveis de ambiente em ambientes de compilação.

  • Os nomes dos artefatos de saída especificados no JSON arquivo do pipeline devem corresponder aos nomes dos artefatos secundários definidos no seu arquivo buildspec. Esse pipeline usa o arquivo buildspec a seguir: Para obter mais informações, consulte Sintaxe de buildspec.

    version: 0.2 phases: build: commands: - touch source1_file - cd $CODEBUILD_SRC_DIR_source2 - touch source2_file artifacts: files: - '**/*' secondary-artifacts: artifact1: base-directory: $CODEBUILD_SRC_DIR files: - source1_file artifact2: base-directory: $CODEBUILD_SRC_DIR_source2 files: - source2_file

Depois de criar o JSON arquivo, você pode criar seu pipeline. Use o AWS CLI para executar o comando create-pipeline e passar o arquivo para o parâmetro. --cli-input-json Para obter mais informações, consulte Criar um pipeline (CLI) no Guia do AWS CodePipeline usuário.