Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Ejemplos de AWS CodePipeline para CodeBuild

Modo de enfoque
Ejemplos de AWS CodePipeline para CodeBuild - AWS CodeBuild

En esta sección se describen ejemplos de integraciones entre CodePipeline y CodeBuild.

Muestra Descripción

Ejemplos de integraciones y compilaciones por lotes de CodePipeline/CodeBuild

En estos ejemplos se muestra cómo usar AWS CodePipeline para crear un proyecto de compilación que utiliza compilaciones por lotes.

Ejemplo de integración de CodePipeline/CodeBuild con varios orígenes de entrada y artefactos de salida

En este ejemplo, se muestra cómo se utiliza AWS CodePipeline para crear un proyecto de compilación que utiliza varios orígenes de entrada a fin de crear varios artefactos de salida.

Ejemplos de integraciones y compilaciones por lotes de CodePipeline/CodeBuild

AWS CodeBuild admite las compilaciones por lotes. En los siguientes ejemplos se muestra cómo utilizar AWS CodePipeline para crear un proyecto de compilación que utilice compilaciones por lotes.

Puede utilizar un archivo con formato JSON que defina la estructura de la canalización y, después, usarlo con la AWS CLI para crear la canalización. Para obtener más información, consulte Referencia de la estructura de canalización de AWS CodePipeline en la Guía del usuario de AWS CodePipeline.

Compilación por lotes con artefactos individuales

Utilice el archivo JSON siguiente como ejemplo de una estructura de canalización que crea una compilación por lotes con artefactos individuales. Para permitir las compilaciones por lotes en CodePipeline, defina el parámetro BatchEnabled del objeto configuration en 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": "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 } }

A continuación se muestra un ejemplo de un archivo de especificaciones de compilación de CodeBuild que funcionará con esta configuración de canalización.

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

Los nombres de los artefactos de salida especificados en el archivo JSON de la canalización deben coincidir con el identificador de las compilaciones y los artefactos definidos en el archivo de especificación de la compilación. La sintaxis es buildIdentifier para los artefactos principales y buildIdentifier_artifactIdentifier para los artefactos secundarios.

Por ejemplo, para el nombre del artefacto de salida build1, CodeBuild cargará el artefacto principal de build1 en la ubicación de build1. Para el nombre de salida build1_artifact1, CodeBuild cargará el artefacto secundario artifact1 de build1 en la ubicación de build1_artifact1, y así sucesivamente. Si solo se especifica una ubicación de salida, el nombre debe ser únicamente buildIdentifier.

Una vez creado el archivo JSON, puede crear la canalización. Utilice la AWS CLI para ejecutar el comando create-pipeline y transferir el archivo al parámetro --cli-input-json. Para obtener más información, consulte Creación de una canalización (CLI) en la Guía del usuario de AWS CodePipeline.

Compilación por lotes con artefactos combinados

Utilice el archivo JSON siguiente como ejemplo de una estructura de canalización que crea una compilación por lotes con artefactos combinados. Para permitir las compilaciones por lotes en CodePipeline, defina el parámetro BatchEnabled del objeto configuration en true. Para combinar los artefactos de compilación en la misma ubicación, defina el parámetro CombineArtifacts del 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 } }

A continuación se muestra un ejemplo de un archivo de especificaciones de compilación de CodeBuild que funcionará con esta configuración de canalización.

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

Si los artefactos combinados están activados para la compilación por lotes, solo se permite una salida. CodeBuild combinará los artefactos principales de todas las compilaciones en un solo archivo ZIP.

Una vez creado el archivo JSON, puede crear la canalización. Utilice la AWS CLI para ejecutar el comando create-pipeline y transferir el archivo al parámetro --cli-input-json. Para obtener más información, consulte Creación de una canalización (CLI) en la Guía del usuario de AWS CodePipeline.

Ejemplo de integración de CodePipeline/CodeBuild con varios orígenes de entrada y artefactos de salida

Un proyecto de AWS CodeBuild puede aceptar varios orígenes de entrada. También puede crear más de un artefacto de salida. En este ejemplo, se muestra cómo se utiliza AWS CodePipeline para crear un proyecto de compilación que utiliza varios orígenes de entrada a fin de crear varios artefactos de salida. Para obtener más información, consulte Ejemplo de varios orígenes de entrada y varios artefactos de salida.

Puede utilizar un archivo con formato JSON que defina la estructura de la canalización y, después, usarlo con la AWS CLI para crear la canalización. Utilice el archivo JSON siguiente como ejemplo de una estructura de canalización que crea una compilación con más de un origen de entrada y más de un artefacto de salida. Más adelante en este ejemplo podrá ver cómo dicho archivo especifica las distintas entradas y salidas. Para obtener más información, consulte Referencia de la estructura de la canalización de CodePipeline en la Guía del usuario de AWS CodePipeline.

{ "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 } }

En este archivo JSON:

  • Debe designar uno de los orígenes de entrada como PrimarySource. Esta fuente es el directorio en el que CodeBuild busca el archivo de especificaciones de compilación y lo ejecuta. La palabra clave PrimarySource se utiliza para especificar el origen principal en la sección configuration de la fase CodeBuild en el archivo JSON.

  • Cada origen de entrada se instala en su propio directorio. Este directorio se almacena en la variable de entorno integrado $CODEBUILD_SRC_DIR para el origen principal y $CODEBUILD_SRC_DIR_yourInputArtifactName para todos los demás orígenes. Para la canalización de este ejemplo, los dos directorios de origen de entrada son $CODEBUILD_SRC_DIR y $CODEBUILD_SRC_DIR_source2. Para obtener más información, consulte Variables de entorno en los entornos de compilación.

  • Los nombres de los artefactos de salida especificados en el archivo JSON de la canalización deben coincidir con los de los artefactos secundarios definidos en el archivo buildspec. Esta canalización utiliza el archivo buildspec siguiente. Para obtener más información, consulte Sintaxis 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

Una vez creado el archivo JSON, puede crear la canalización. Utilice la AWS CLI para ejecutar el comando create-pipeline y transferir el archivo al parámetro --cli-input-json. Para obtener más información, consulte Creación de una canalización (CLI) en la Guía del usuario de AWS CodePipeline.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.