Use o procedimento a seguir para criar um projeto de compilação com várias entradas e saídas.
Para criar um projeto de compilação com várias entradas e saídas
-
Faça upload das origens em um ou mais buckets do S3, repositórios do CodeCommit, do GitHub, do GitHub Enterprise Server ou do Bitbucket.
-
Escolha qual será a origem principal. Essa é a origem em que o CodeBuild procura e executa o arquivo buildspec.
-
Crie um projeto de compilação. Para obter mais informações, consulte Criar um projeto de compilação no AWS CodeBuild.
-
Crie o projeto de compilação, execute a compilação e obtenha informações sobre ela.
-
Se você usar a AWS CLI para criar o projeto de compilação, a entrada em formato JSON para o comando
create-project
poderá ser semelhante a:{ "name": "sample-project", "source": { "type": "S3", "location": "
<bucket/sample.zip>
" }, "secondarySources": [ { "type": "CODECOMMIT", "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo", "sourceIdentifier": "source1" }, { "type": "GITHUB", "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin", "sourceIdentifier": "source2" } ], "secondaryArtifacts": [ss { "type": "S3", "location": "<output-bucket>
", "artifactIdentifier": "artifact1" }, { "type": "S3", "location": "<other-output-bucket>
", "artifactIdentifier": "artifact2" } ], "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
Sua origem principal é definida abaixo do atributo source
. Todas as outras origens são chamadas de secundárias e aparecem abaixo de secondarySources
. Todas as origens secundárias são instaladas em seu próprio diretório. Esse diretório é armazenado na variável de ambiente interna CODEBUILD_SRC_DIR_
. Para obter mais informações, consulte Variáveis de ambiente em ambientes de compilação. sourceIdentifer
O atributo secondaryArtifacts
contém uma lista de definições de artefato. Esses artefatos usam o bloco secondary-artifacts
do arquivo buildspec que fica aninhado dentro do bloco artifacts
.
Os artefatos secundários no arquivo buildspec têm a mesma estrutura que os artefatos e são separados pelo seu respectivo identificador de artefato.
nota
Na API do CodeBuild, o artifactIdentifier
em um artefato secundário é um atributo obrigatório em CreateProject
e UpdateProject
. Ele deve ser usado para fazer referência a um artefato secundário.
Com a entrada em formato JSON anterior, o arquivo buildspec do projeto deve ter esta aparência:
version: 0.2
phases:
install:
runtime-versions:
java: openjdk11
build:
commands:
- cd $CODEBUILD_SRC_DIR_source1
- touch file1
- cd $CODEBUILD_SRC_DIR_source2
- touch file2
artifacts:
files:
- '**.*'
secondary-artifacts:
artifact1:
base-directory: $CODEBUILD_SRC_DIR_source1
files:
- file1
artifact2:
base-directory: $CODEBUILD_SRC_DIR_source2
files:
- file2
Você pode substituir a versão da origem principal usando a API com o atributo sourceVersion
em StartBuild
. Para substituir uma ou mais versões de origem secundária, use o atributo secondarySourceVersionOverride
.
A entrada em formato JSON para o comando start-build
na AWS CLI deve ter esta aparência:
{
"projectName": "sample-project",
"secondarySourcesVersionOverride": [
{
"sourceIdentifier": "source1",
"sourceVersion": "codecommit-branch"
},
{
"sourceIdentifier": "source2",
"sourceVersion": "github-branch"
},
]
}