Creación de un proyecto de compilación con varias entradas y salidas
Utilice el siguiente procedimiento para crear un proyecto de compilación con varias entradas y salidas.
Para crear un proyecto de compilación con varias entradas y salidas
-
Cargue las fuentes en uno o más buckets de S3 o en uno o más repositorios de CodeCommit, GitHub, GitHub Enterprise Server o Bitbucket.
-
Elija cuál es el origen principal. Esta es la fuente donde CodeBuild busca el archivo de especificaciones de compilación y lo ejecuta.
-
Cree un proyecto de compilación. Para obtener más información, consulte Creación de un proyecto de compilación en AWS CodeBuild.
-
Cree el proyecto de compilación, ejecute la compilación y obtenga información sobre esta.
-
Si usa la AWS CLI para crear el proyecto de compilación, es posible que el resultado con formato JSON del comando
create-project
tenga un aspecto similar al siguiente:{ "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" }
El origen principal se define en el atributo source
. El resto de orígenes se denominan secundarios y aparecen en secondarySources
. Todos los orígenes secundarios se instalan en su propio directorio. Este directorio se almacena en la variable de entorno integrada CODEBUILD_SRC_DIR_
. Para obtener más información, consulte Variables de entorno en los entornos de compilación. sourceIdentifer
El atributo secondaryArtifacts
contiene una lista de definiciones de artefacto. Estos artefactos usan el bloque secondary-artifacts
del archivo buildspec anidado en el bloque artifacts
.
Los artefactos secundarios del archivo buildspec tienen la misma estructura que el resto de artefactos y se separan mediante el identificador correspondiente.
nota
En la API de CodeBuild, artifactIdentifier
de un artefacto secundario es un atributo obligatorio en CreateProject
y UpdateProject
. Debe utilizarse para hacer referencia a un artefacto secundario.
Si se utiliza la entrada con formato JSON anterior, el archivo buildspec del proyecto puede tener este aspecto:
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
Puede reemplazar la versión del origen principal mediante la API con el atributo sourceVersion
en StartBuild
. Para reemplazar una o varias versiones de origen secundario, utilice el atributo secondarySourceVersionOverride
.
Es posible que la entrada con formato JSON del comando start-build
de la AWS CLI tenga este aspecto:
{ "projectName": "sample-project", "secondarySourcesVersionOverride": [ { "sourceIdentifier": "source1", "sourceVersion": "codecommit-branch" }, { "sourceIdentifier": "source2", "sourceVersion": "github-branch" }, ] }