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-chavePrimarySource
é usada para especificar a fonte primária naconfiguration
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.