Compilaciones por lotes en AWS 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.

Compilaciones por lotes en AWS CodeBuild

Es posible utilizar AWS CodeBuild para ejecutar compilaciones simultáneas y coordinadas de un proyecto con compilaciones por lotes.

Rol de seguridad

Las compilaciones por lotes introducen un nuevo rol de seguridad en la configuración por lotes. Este nuevo rol es obligatorio, ya que CodeBuild debes poder ejecutar las RetryBuild acciones StartBuildStopBuild, y en tu nombre para ejecutar compilaciones como parte de un lote. Los clientes deberían utilizar un nuevo rol, y no el mismo rol que utilizan para su compilación, por dos motivos:

  • Al asignar los permisos de StartBuild, StopBuild y RetryBuild en el rol de compilación, una sola compilación podría iniciar más compilaciones a través de la especificación de compilación.

  • CodeBuild Las compilaciones por lotes proporcionan restricciones que restringen la cantidad de compilaciones y tipos de procesamiento que se pueden usar para las compilaciones del lote. Si la función de compilación tiene estos permisos, es posible que las propias compilaciones puedan eludir estas restricciones.

Tipos de compilación por lotes

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

Grafo de compilación

Un grafo de compilación define un conjunto de tareas que dependen de otras tareas del lote.

En el siguiente ejemplo, se define un grafo 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:

  • build1 se ejecuta primero porque no tiene dependencias.

  • build2 depende de build1, por lo que build2 se ejecuta después de completar build1.

  • build3 depende de build2, por lo que build3 se ejecuta después de completar build2.

Para obtener más información acerca de la sintaxis del grafo de especificación de compilación, consulte batch/build-graph.

Lista de compilación

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

En el ejemplo siguiente se define una lista de compilación. Las compilaciones build1 y build2 se ejecutarán 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 lista de especificación de compilación, consulte batch/build-list.

Matriz de compilación

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

El ejemplo siguiente muestra una matriz de compilación con dos archivos de especificaciones de compilación y tres valores de 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 configuración siguiente:

  • ignore-failure es false.

  • env/type es LINUX_CONTAINER.

  • env/image es aws/codebuild/amazonlinux2-x86_64-standard:4.0.

  • env/privileged-mode es true.

Estas compilaciones se ejecutan en paralelo.

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

Modo de informe por lotes

Si el proveedor de origen de tu proyecto es Bitbucket 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. GitHub Es posible seleccionar que los estados se envíen como un único informe de estado agregado para el lote o que se notifique el estado de cada compilación de lote por separado.

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

Más información

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