Compilación Batch enAWS CodeBuild - 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.

Compilación Batch enAWS CodeBuild

Puede usarAWS CodeBuildpara ejecutar compilaciones simultáneas y coordinadas de un proyecto con compilaciones por lotes.

Función de seguridad

Las compilaciones Batch introducen un nuevo rol de seguridad en la configuración de lotes. Esta nueva función es necesaria, ya que CodeBuild debe poder llamar alStartBuild,StopBuild, yRetryBuildacciones en su nombre para ejecutar compilaciones como parte de un lote. Los clientes deben utilizar un nuevo rol, y no el mismo rol que usan en su compilación, por dos razones:

  • Dar el rol de compilaciónStartBuild,StopBuild, yRetryBuildlos permisos permitirían que una sola compilación inicie más compilaciones a través de la especificación de compilación.

  • Las compilaciones por lotes de CodeBuild proporcionan restricciones que restringen el número de compilaciones y tipos de cómputo que se pueden utilizar para las compilaciones del lote. Si el rol de compilación tiene estos permisos, es posible que las compilaciones mismas puedan eludir estas restricciones.

Tipos de compilación por lo

CodeBuild admite los siguientes tipos de compilación por lotes:

Gráfico de compilación

Un gráfico de compilación define un conjunto de tareas que dependen de otras tareas del lote.

En el siguiente ejemplo se define un gráfico de compilación que crea una cadena de dependencias.

batch: fast-fail: false build-graph: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 buildspec: build2.yml env: variables: BUILD_ID: build2 depend-on: - build1 - identifier: build3 env: variables: BUILD_ID: build3 depend-on: - build2

En este ejemplo:

  • build1se ejecuta primero porque no tiene dependencias.

  • build2tiene una dependencia debuild1, sobuild2corre despuésbuild1completa.

  • build3tiene una dependencia debuild2, sobuild3corre despuésbuild2completa.

Para obtener más información acerca de la sintaxis de la especificación de compilación del gráfico de compilación, consultebatch/build-graph.

Lista de compilación

Una lista de compilación define varias tareas que se ejecutan en paralelo.

En el siguiente ejemplo, define una lista de compilación. Labuild1ybuild2las compilaciones se ejecutan en paralelo.

batch: fast-fail: false build-list: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 buildspec: build2.yml env: variables: BUILD_ID: build2 ignore-failure: true

Para obtener más información acerca de la sintaxis de la compilación de la lista de compilación, consultebatch/build-list.

Crear una matriz de

Una matriz de compilación define tareas con configuraciones diferentes que se ejecutan en paralelo. CodeBuild crea una compilación independiente para cada combinación de configuración posible.

En el ejemplo siguiente se muestra una matriz de compilación con dos archivos buildspec y tres valores para una variable de entorno.

batch: build-matrix: static: ignore-failure: false dynamic: buildspec: - matrix1.yml - matrix2.yml env: variables: MY_VAR: - VALUE1 - VALUE2 - VALUE3

En este ejemplo, CodeBuild crea seis compilaciones:

  • matrix1.yml por $MY_VAR=VALUE1

  • matrix1.yml por $MY_VAR=VALUE2

  • matrix1.yml por $MY_VAR=VALUE3

  • matrix2.yml por $MY_VAR=VALUE1

  • matrix2.yml por $MY_VAR=VALUE2

  • matrix2.yml por $MY_VAR=VALUE3

Cada compilación tendrá la siguiente configuración:

  • ignore-failureestablecido enfalse

  • env/typeestablecido enLINUX_CONTAINER

  • env/imageestablecido enaws/codebuild/amazonlinux2-x86_64-standard:3.0

  • env/privileged-modeestablecido entrue

Estas compilaciones se ejecutan en paralelo.

Para obtener más información acerca de la sintaxis de la compilación de la matriz de compilación, consultebatch/build-matrix.

Modo de informe por lotes

Si el proveedor de origen de tu proyecto es Bitbucket, GitHub o GitHub Enterprise y tu proyecto está configurado para informar de los estados de compilación al proveedor de origen, puedes seleccionar cómo quieres que se envíen los estados de compilación por lotes al proveedor de origen. Puede seleccionar que los estados se envíen como un único informe de estado agregado para el lote o que se informe individualmente el estado de cada compilación del lote.

Para obtener más información, consulte los siguientes temas:

Más información

Para obtener más información, consulte los siguientes temas: