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 compilación de AWS CodeBuild con varios orígenes de entrada y varios conjuntos 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 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 el 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. Siga las instrucciones en Ejecutar AWS CodeBuild directamente para crear el proyecto de compilación, ejecutar la compilación y obtener información sobre esta.

  5. 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": [ { "type": "S3", "location": "output-bucket", "artifactIdentifier": "artifact1" }, { "type": "S3", "location": "other-output-bucket", "artifactIdentifier": "artifact2" } ], "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.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 API de CodeBuild , el valor 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" }, ] }

Ejemplo de proyecto sin un origen

Puede configurar un CodeBuild proyecto seleccionando el tipo deNO_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:4.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 aprender a crear una canalización que utilice múltiples entradas de origen CodeBuild para crear múltiples artefactos de salida, consulteAWS CodePipelineintegración CodeBuild y muestra de múltiples fuentes de entrada y artefactos de salida .