AWS CodeBuild - AWS CodePipeline

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.

AWS CodeBuild

Le permite ejecutar compilaciones y pruebas como parte de la canalización. Cuando ejecuta una acción de prueba o de compilación de CodeBuild, los comandos especificados en la especificación de compilación se ejecutan dentro de un contenedor de CodeBuild. Todos los artefactos que se especifican como artefactos de entrada en una acción de CodeBuild están disponibles dentro del contenedor que ejecuta los comandos. CodeBuild puede proporcionar una acción de prueba o de compilación. Para obtener más información, consulte la Guía del usuario de AWS CodeBuild.

Cuando se utiliza el asistente de CodePipeline en la consola para crear un proyecto de compilación, el proyecto de compilación de CodeBuild muestra que el proveedor de código fuente es CodePipeline. Al crear un proyecto de compilación en la consola de CodeBuild, no puede especificar que CodePipeline sea el proveedor de código fuente, pero al añadir la acción de compilación a la canalización se ajusta el código fuente en la consola de CodeBuild. Para obtener más información, consulte ProductInformation en la AWS CodeBuild API Reference.

Tipo de acción

  • Categoría: Build o Test

  • Propietario: AWS

  • Proveedor: CodeBuild

  • Versión: 1

Parámetros de configuración

ProjectName

Obligatorio: sí

ProjectName es el nombre del proyecto de compilación de CodeBuild.

PrimarySource

Obligatorio: condicional

El valor del parámetro PrimarySource debe ser el nombre de uno de los artefactos de entrada de la acción. CodeBuild busca el archivo de especificaciones de compilación y ejecuta los comandos de especificaciones de compilación en el directorio que contiene la versión descomprimida de este artefacto.

Este parámetro es necesario si se especifican varios artefactos de entrada para una acción de CodeBuild. Cuando solo hay un artefacto de código fuente para la acción, el artefacto PrimarySource se establece como valor predeterminado de dicho artefacto.

BatchEnabled

Obligatorio: no

El valor booleano del parámetro BatchEnabled permite que la acción ejecute varias compilaciones en la misma ejecución de compilación.

Cuando esta opción está habilitada, la opción CombineArtifacts está disponible.

Para ver ejemplos de canalizaciones con compilaciones por lotes habilitadas, consulte Integración de CodePipeline con CodeBuild y compilaciones por lotes.

CombineArtifacts

Obligatorio: no

El valor booleano del parámetro CombineArtifacts combina todos los artefactos de compilación de una compilación por lotes en un único archivo de artefactos para la acción de compilación.

Para utilizar esta opción, el parámetro BatchEnabled debe estar activado.

EnvironmentVariables

Obligatorio: no

El valor de este parámetro se utiliza para establecer variables de entorno para la acción de CodeBuild de la canalización. El valor del parámetro EnvironmentVariables toma la forma de una matriz JSON de objetos de variables de entorno. Consulte el parámetro de ejemplo en Declaración de acción (ejemplo de CodeBuild).

Cada objeto tiene tres partes, todas las cuales son cadenas:

  • name: el nombre o la clave de la variable de entorno.

  • value: el valor de la variable de entorno. Al utilizar el tipo PARAMETER_STORE o SECRETS_MANAGER, este valor debe ser el nombre de un parámetro que ya haya almacenado en el almacén de parámetros de AWS Systems Manager o un secreto en el que ya haya almacenado en AWS Secrets Manager, respectivamente.

    nota

    Se desaconseja usar variables de entorno para almacenar valores confidenciales, especialmente las credenciales de AWS. Cuando utiliza la consola de CodeBuild o la CLI de AWS, las variables de entorno se muestran en texto sin formato. Para valores confidenciales, se recomienda utilizar el tipo SECRETS_MANAGERen su lugar.

  • type: (opcional) el tipo de la variable de entorno. Los valores válidos son PARAMETER_STORE, SECRETS_MANAGER o PLAINTEXT. Si no se especifica, toma el valor predeterminado PLAINTEXT.

nota

Cuando introduzca los valores name, value, y type de configuración de las variables de entorno, especialmente si la variable de entorno contiene sintaxis de variable de salida de CodePipeline, no supere el límite de 1000 caracteres del campo de valor de la configuración. Cuando se supera este límite, se devuelve un error de validación.

Para obtener más información, consulte EnvironmentVariable en la AWS CodeBuildAPI Reference. Para ver un ejemplo de acción de CodeBuild con una variable de entorno que se resuelva en el nombre de la ramificación de GitHub, consulte Ejemplo: usar una variable BranchName con variables de entorno de CodeBuild.

Artefactos de entrada

  • Número de artefactos: 1 to 5

  • Descripción: CodeBuild busca el archivo de especificación de compilación y ejecuta los comandos de especificaciones de compilación desde el directorio del artefacto de código fuente principal. Cuando se especifica más de un código fuente de entrada para la acción de CodeBuild, este artefacto debe establecerse con el parámetro de configuración de la acción PrimarySource en CodePipeline.

    Cada artefacto de entrada se extrae en su propio directorio, cuyas ubicaciones se almacenan en variables de entorno. El directorio del artefacto de código fuente principal está disponible con $CODEBUILD_SRC_DIR. Los directorios del resto de artefactos de entrada están disponibles con $CODEBUILD_SRC_DIR_yourInputArtifactName.

    nota

    El artefacto configurado en el proyecto de CodeBuild se convierte en el artefacto de entrada utilizado mediante la acción de CodeBuild en la canalización.

Artefactos de salida

  • Número de artefactos: 0 to 5

  • Descripción: se pueden utilizar para que los artefactos que se definen en el archivo de especificaciones de compilación de CodeBuild estén disponibles para acciones posteriores en la canalización. Cuando solo se define un artefacto de salida, este artefacto se puede definir directamente en la sección artifacts del archivo de especificación de compilación. Cuando se especifica más de un artefacto de salida, todos los artefactos a los que se hace referencia deben definirse como artefactos secundarios en el archivo de especificación de compilación. Los nombres de los artefactos de salida en CodePipeline deben coincidir con los identificadores de artefactos del archivo de especificaciones de compilación.

    nota

    El artefacto configurado en el proyecto de CodeBuild se convierte en el artefacto de entrada de CodePipeline en la acción de la canalización.

    Si se selecciona el parámetro CombineArtifacts para compilaciones por lotes, la ubicación del artefacto de salida contiene los artefactos combinados de varias compilaciones que se ejecutaron en la misma ejecución.

Variables de salida

Esta acción producirá como variables todas las variables de entorno que se exportaron como parte de la compilación. Para obtener más información sobre cómo exportar variables de entorno, consulte EnvironmentVariable en la Guía de API AWS CodeBuild.

Para obtener más información sobre el uso de las variables de entorno CodeBuild en CodePipeline, consulte los ejemplos de CodeBuild variables de salida de una acción. Para obtener una lista de las variables de entorno que puede usar en CodeBuild, consulte Variables de entorno en entornos de compilación en la Guía del usuario de AWS CodeBuild.

Declaración de acción (ejemplo de CodeBuild)

YAML
Name: Build Actions: - Name: PackageExport ActionTypeId: Category: Build Owner: AWS Provider: CodeBuild Version: '1' RunOrder: 1 Configuration: BatchEnabled: 'true' CombineArtifacts: 'true' ProjectName: my-build-project PrimarySource: MyApplicationSource1 EnvironmentVariables: '[{"name":"TEST_VARIABLE","value":"TEST_VALUE","type":"PLAINTEXT"},{"name":"ParamStoreTest","value":"PARAMETER_NAME","type":"PARAMETER_STORE"}]' OutputArtifacts: - Name: MyPipeline-BuildArtifact InputArtifacts: - Name: MyApplicationSource1 - Name: MyApplicationSource2
JSON
{ "Name": "Build", "Actions": [ { "Name": "PackageExport", "ActionTypeId": { "Category": "Build", "Owner": "AWS", "Provider": "CodeBuild", "Version": "1" }, "RunOrder": 1, "Configuration": { "BatchEnabled": "true", "CombineArtifacts": "true", "ProjectName": "my-build-project", "PrimarySource": "MyApplicationSource1", "EnvironmentVariables": "[{\"name\":\"TEST_VARIABLE\",\"value\":\"TEST_VALUE\",\"type\":\"PLAINTEXT\"},{\"name\":\"ParamStoreTest\",\"value\":\"PARAMETER_NAME\",\"type\":\"PARAMETER_STORE\"}]" }, "OutputArtifacts": [ { "Name": "MyPipeline-BuildArtifact" } ], "InputArtifacts": [ { "Name": "MyApplicationSource1" }, { "Name": "MyApplicationSource2" } ] } ] }

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.