Regla de CodeBuild - AWS CodePipeline

Regla de CodeBuild

Al crear una condición, puede agregar la regla de CodeBuild. En esta sección, se proporciona una referencia para los parámetros de reglas. Para obtener más información acerca de las reglas y condiciones, consulte Funcionamiento de las condiciones de las etapas.

Puede usar la regla de CodeBuild para crear una condición para que la ejecución del proyecto de compilación sea correcta si cumple los criterios de la regla, por ejemplo, que la ejecución de la compilación sea correcta para una condición beforeEntry.

nota

Para las condiciones beforeEntry que se configuran con el resultado Skip, solo están disponibles las reglas LambdaInvoke y VariableCheck.

Permisos para las políticas de roles de servicio

Para conceder permisos a esta regla, agregue lo siguiente a la declaración de la política de rol de servicio de CodePipeline. Reduzca los permisos al nivel de recurso.

{ "Effect": "Allow", "Action": [ "codebuild:BatchGetBuilds", "codebuild:StartBuild" ], "Resource": "resource_ARN" },

Tipo de regla

  • Categoría: Rule

  • 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 buildspec y ejecuta los comandos buildspec 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 origen 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.

Ejemplo de configuraciones de regla

YAML
name: codebuild-rule ruleTypeId: category: Rule owner: AWS provider: CodeBuild version: '1' configuration: ProjectName: my-buildproject EnvironmentVariables: '[{"name":"VAR1","value":"variable","type":"PLAINTEXT"}]' inputArtifacts: - name: SourceArtifact region: us-east-1
JSON
{ "name": "codebuild-rule", "ruleTypeId": { "category": "Rule", "owner": "AWS", "provider": "CodeBuild", "version": "1" }, "configuration": { "ProjectName": "my-buildproject" }, "inputArtifacts": [ { "name": "SourceArtifact", "EnvironmentVariables": "[{\"name\":\"VAR1\",\"value\":\"variable\",\"type\":\"PLAINTEXT\"}]" } ], "region": "us-east-1" }

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta regla.