Ejemplo de varios orígenes de entrada y varios artefactos de salida - AWS CodeBuild

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplo de varios orígenes de entrada y varios artefactos de salida

Puede crear un proyecto de AWS CodeBuild compilación con más de una fuente de entrada y más de un conjunto de artefactos de salida. En este ejemplo se muestra cómo configurar un proyecto de compilación que:

  • Utiliza varios orígenes y repositorios de distintos tipos.

  • Publica los artefactos de compilación en varios buckets de S3 en una sola compilación.

En este ejemplo se crea un proyecto de compilación que se utiliza para ejecutar una compilación. El ejemplo usa el archivo buildspec del proyecto de compilación para mostrar cómo incorporar más de un origen y crear más de un conjunto de artefactos.

  1. Sube tus fuentes a uno o más repositorios de S3 buckets CodeCommit GitHub, GitHub Enterprise Server o Bitbucket.

  2. Elija cuál es el origen principal. Esta es la fuente en la que CodeBuild busca y ejecuta tu archivo buildspec.

  3. Cree un proyecto de compilación. Para obtener más información, consulte Creación de un proyecto de compilación en AWS CodeBuild.

  4. Crea tu proyecto de compilación, ejecuta la compilación y obtén información sobre la compilación.

  5. Si utilizas el AWS CLI para crear el proyecto de compilación, la entrada del create-project comando con formato JSON podría tener 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_sourceIdentifer. Para obtener más información, consulte Variables de entorno en los entornos de compilación.

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 CodeBuild API, el atributo artifactIdentifier sobre un artefacto secundario es obligatorio en y. CreateProject 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.

La entrada con formato JSON del start-build comando en el podría tener el siguiente aspecto: AWS CLI

{ "projectName": "sample-project", "secondarySourcesVersionOverride": [ { "sourceIdentifier": "source1", "sourceVersion": "codecommit-branch" }, { "sourceIdentifier": "source2", "sourceVersion": "github-branch" }, ] }

Ejemplo de proyecto sin un origen

Puede configurar un CodeBuild proyecto eligiendo el tipo de NO_SOURCE fuente al configurar la fuente. Cuando el tipo de origen es NO_SOURCE, no puede especificar un archivo de especificación de compilación porque su proyecto no tiene un origen. En su lugar, debe especificar una cadena de especificación de compilación con formato YAML en el atributo buildspec de la entrada con formato JSON al comando de la CLI create-project. Podría ser como el siguiente:

{ "name": "project-name", "source": { "type": "NO_SOURCE", "buildspec": "version: 0.2\n\nphases:\n build:\n commands:\n - command" }, "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" }

Para obtener más información, consulte Crear un proyecto de compilación (AWS CLI).

Para obtener información sobre cómo crear una canalización que utilice varias entradas de origen CodeBuild para crear varios artefactos de salida, consulteAWS CodePipeline ejemplo de integración con CodeBuild múltiples fuentes de entrada y artefactos de salida .