Ejecutar una compilación (AWS CLI) - 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.

Ejecutar una compilación (AWS CLI)

nota

Si desea usar CodePipeline para ejecutar una compilación con AWS CodeBuild, omita estos pasos y siga las instrucciones de Crear una canalización que use CodeBuild (AWS CLI).

Para obtener más información sobre cómo usar AWS CLI con CodeBuild, consulte Referencia de la línea de comandos.

  1. Ejecute el comando start-build de una de las siguientes formas:

    aws codebuild start-build --project-name <project-name>

    Utilice esta opción si desea ejecutar una compilación que utilice la última versión del artefacto de entrada de la compilación y la configuración existente del proyecto de compilación.

    aws codebuild start-build --generate-cli-skeleton

    Utilice esta opción si desea ejecutar una versión de compilación con una versión anterior del artefacto de entrada de compilación o si desea anular la configuración de los artefactos de salida de compilación, variables de entorno, especificación de compilación o período de tiempo de espera de compilación predeterminado.

  2. Si ejecuta el comando start-build con la opción --project-name, sustituya <project-name> por el nombre del proyecto de compilación y vaya al paso 6 de este procedimiento. Para obtener una lista de proyectos de compilación, consulte Ver una lista de nombres de proyectos de compilación.

  3. Si ejecuta el comando start-build con la opción --idempotency-token, se incluye un identificador único en el que se distingue entre mayúsculas y minúsculas, o token, con la solicitud de start-build. El token es válido durante 5 minutos después de la solicitud. Si repite la solicitud start-build con el mismo token, pero cambia un parámetro, CodeBuild devuelve un error de coincidencia de parámetros.

  4. Si ejecuta el comando start-build con la opción --generate-cli-skeleton, se mostrarán en el resultado datos con formato JSON. Copie los datos en un archivo (por ejemplo, start-build.json) en la ubicación del equipo o instancia local en la que haya instalado la AWS CLI. Modifique los datos copiados para que coincidan con el siguiente formato y guarde los resultados:

    { "projectName": "projectName", "sourceVersion": "sourceVersion", "artifactsOverride": { "type": "type", "location": "location", "path": "path", "namespaceType": "namespaceType", "name": "artifactsOverride-name", "packaging": "packaging" }, "buildspecOverride": "buildspecOverride", "cacheOverride": { "location": "cacheOverride-location", "type": "cacheOverride-type" }, "certificateOverride": "certificateOverride", "computeTypeOverride": "computeTypeOverride", "environmentTypeOverride": "environmentTypeOverride", "environmentVariablesOverride": { "name": "environmentVariablesOverride-name", "value": "environmentVariablesValue", "type": "environmentVariablesOverride-type" }, "gitCloneDepthOverride": "gitCloneDepthOverride", "imageOverride": "imageOverride", "idempotencyToken": "idempotencyToken", "insecureSslOverride": "insecureSslOverride", "privilegedModeOverride": "privilegedModeOverride", "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride", "reportBuildStatusOverride": "reportBuildStatusOverride", "timeoutInMinutesOverride": "timeoutInMinutesOverride", "sourceAuthOverride": "sourceAuthOverride", "sourceLocationOverride": "sourceLocationOverride", "serviceRoleOverride": "serviceRoleOverride", "sourceTypeOverride": "sourceTypeOverride" }

    Reemplace los siguientes marcadores de posición:

    • projectName: cadena necesaria. El nombre del proyecto de compilación que desea usar para esta compilación.

    • sourceVersion: cadena opcional. Una versión del código fuente que se va a compilar, como la siguiente:

      • Para Amazon S3, el ID de versión correspondiente a la versión del archivo ZIP de entrada que desea compilar. Si no se especifica sourceVersion, se usa la versión más reciente.

      • Para CodeCommit, el ID de confirmación correspondiente a la versión del código fuente que desea compilar. Si no se especifica sourceVersion, se usa el ID de confirmación HEAD de la ramificación personalizada. (No puede especificar un nombre de etiqueta para sourceVersion, pero puede especificar el ID de confirmación de la etiqueta).

      • Para GitHub, el ID de confirmación, el ID de solicitud de inserción, el nombre de ramificación o el nombre de etiqueta correspondiente a la versión de código fuente que desea compilar. Si se especifica un ID de solicitud de inserción, este debe tener el formato pr/pull-request-ID (por ejemplo, pr/25). Si se especifica un nombre de ramificación, se usa el ID de confirmación HEAD de la ramificación. Si no se especifica sourceVersion, se usa el ID de confirmación HEAD de la ramificación personalizada.

      • Para Bitbucket, el ID de confirmación, el nombre de ramificación o el nombre de etiqueta correspondiente a la versión de código fuente que desea compilar. Si se especifica un nombre de ramificación, se usa el ID de confirmación HEAD de la ramificación. Si no se especifica sourceVersion, se usa el ID de confirmación HEAD de la ramificación personalizada.

    • Los siguientes marcadores de posición son para artifactsOverride.

      • type: opcional. El tipo de artefacto de salida de la compilación que invalida el definido en el proyecto de compilación para esta compilación.

      • location: opcional. La ubicación del artefacto de salida de la compilación que invalida la definida en el proyecto de compilación para esta compilación.

      • path: opcional. La ruta del artefacto de salida de la compilación que invalida la definida en el proyecto de compilación para esta compilación.

      • namespaceType: opcional. El tipo de ruta del artefacto de salida de la compilación que invalida el definido en el proyecto de compilación para esta compilación.

      • name: opcional. El nombre del artefacto de salida de la compilación que invalida el definido en el proyecto de compilación para esta compilación.

      • packaging: opcional. El tipo de empaquetado del artefacto de salida de la compilación que invalida el definido en el proyecto de compilación para esta compilación.

    • buildspecOverride: opcional. Declaración de buildspec que invalida la declaración definida en el proyecto de esta compilación. Si se establece este valor, puede ser una definición de buildspec en línea, la ruta a un archivo de buildspec alternativo en relación con el valor de la variable de entorno CODEBUILD_SRC_DIR incorporada, o la ruta a un bucket de S3. El bucket de S3 debe estar en la misma región de AWS que el proyecto de compilación. Especifique el archivo buildspec utilizando su ARN (por ejemplo, arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml). Si este valor no se proporciona o se establece en una cadena vacía, el código fuente debe contener un archivo buildspec.yml en su directorio raíz. Para obtener más información, consulte Nombre de archivo y ubicación de almacenamiento de buildspec.

    • Los siguientes marcadores de posición son para cacheOverride.

      • cacheOverride-location: opcional. La ubicación de un objeto ProjectCache para esta compilación que anula el objeto ProjectCache especificado en el proyecto de compilación. cacheOverride es opcional y toma un objeto ProjectCache. location es obligatorio en un objeto ProjectCache.

      • cacheOverride-type: opcional. El tipo de un objeto ProjectCache para esta compilación que anula el objeto ProjectCache especificado en el proyecto de compilación. cacheOverride es opcional y toma un objeto ProjectCache. type es obligatorio en un objeto ProjectCache.

    • certificateOverride: opcional. El nombre de un certificado para esta compilación que sustituye el especificado en el proyecto de compilación.

    • environmentTypeOverride: opcional. Un tipo de contenedor para esta compilación que sustituye el especificado en el proyecto de compilación. La cadena válida actual es LINUX_CONTAINER.

    • Los siguientes marcadores de posición son para environmentVariablesOverride.

      • environmentVariablesOverride-name: opcional. El nombre de una variable de entorno del proyecto de compilación cuyo valor desea invalidar para esta compilación.

      • environmentVariablesOverride-type: opcional. El tipo de variable de entorno del proyecto de compilación cuyo valor desea invalidar para esta compilación.

      • environmentVariablesValue: opcional. El valor de la variable de entorno definida en el proyecto de compilación que desea invalidar para esta compilación.

    • gitCloneDepthOverride: opcional. El valor de Git clone depth en el proyecto de compilación cuyo valor desea invalidar para esta compilación. Si el tipo de origen es Amazon S3, este valor no se admite.

    • imageOverride: opcional. El nombre de una imagen para esta compilación que sustituye el especificado en el proyecto de compilación.

    • idempotencyToken: opcional. Una cadena que sirve de token para especificar que la solicitud de compilación es idempotente. Puede elegir cualquier cadena de 64 caracteres o menos. El token es válido durante 5 minutos después de la solicitud de inicio de la compilación. Si se repite la solicitud de inicio de compilación con el mismo token, pero se cambia un parámetro, CodeBuild devuelve un error de coincidencia de parámetros.

    • insecureSslOverride: valor booleano opcional que especifica si la configuración TLS no segura especificada se va a invalidar en el proyecto de compilación. La configuración de TLS no segura determina si deben omitirse las advertencias de TLS al conectarse al código fuente del proyecto. Esta sustitución se aplica únicamente si el origen de la compilación es GitHub Enterprise Server.

    • privilegedModeOverride: valor booleano opcional. Si se establece en true, la compilación sustituye el modo privilegiado en el proyecto de compilación.

    • queuedTimeoutInMinutesOverride: Número entero opcional que especifica el número de minutos que se permite en cola una compilación antes de que transcurra el tiempo de espera. Su valor mínimo es de cinco minutos y su valor máximo es 480 minutos (ocho horas).

    • reportBuildStatusOverride: valor booleano opcional que especifica si se debe enviar al proveedor de código fuente el estado de inicio y finalización de una compilación. Si define este valor con un proveedor de código fuente distinto de GitHub, GitHub Enterprise Server o Bitbucket, se genera una excepción invalidInputException.

    • sourceAuthOverride: cadena opcional. Un tipo de autorización para esta compilación que sustituye la definida en el proyecto de compilación. Esta sustitución se aplica únicamente si el origen del proyecto de compilación es Bitbucket o GitHub.

    • sourceLocationOverride: cadena opcional. Una ubicación que sustituye la ubicación de código fuente de este proyecto por la definida en el proyecto de compilación.

    • serviceRoleOverride: cadena opcional. El nombre de un rol de servicio para esta compilación que sustituye el especificado en el proyecto de compilación.

    • sourceTypeOverride: cadena opcional. Un tipo de entrada de código fuente para esta compilación que sustituye la entrada de código fuente definida en el proyecto de compilación. Las cadenas válidas son NO_SOURCE, CODECOMMIT, CODEPIPELINE, GITHUB, S3, BITBUCKET y GITHUB_ENTERPRISE.

    • timeoutInMinutesOverride: número opcional. El número de minutos de tiempo de espera de la compilación que invalida el definido en el proyecto de compilación para esta compilación.

    Le recomendamos que almacene una variable de entorno con un valor confidencial, como un ID de clave de acceso de AWS, una clave de acceso secreta de AWS o una contraseña, como un parámetro en el almacén de parámetros de Amazon EC2 Systems Manager. CodeBuild puede utilizar un parámetro almacenado en el almacén de parámetros de Amazon EC2 Systems Manager solo si el nombre del parámetro comienza por /CodeBuild/ (por ejemplo, /CodeBuild/dockerLoginPassword). Puede utilizar la consola de CodeBuild para crear un parámetro en Amazon EC2 Systems Manager. Elija Crear un parámetro y siga las instrucciones. (En ese cuadro de diálogo, en Clave de KMS, puede especificar si lo desea el ARN de una clave de AWS KMS de su cuenta. Amazon EC2 Systems Manager utiliza esta clave para cifrar el valor del parámetro durante el almacenamiento y descifrarlo durante la recuperación). Si usa la consola de CodeBuild para crear un parámetro, la consola asigna /CodeBuild/ al principio del parámetro cuando lo almacena. Sin embargo, si utiliza la consola del almacén de parámetros de Amazon EC2 Systems Manager para crear un parámetro, el nombre del parámetro debe comenzar por /CodeBuild/ y debe establecer Tipo en Cadena segura. Para obtener más información, consulte Almacenamiento de parámetros de AWS Systems Manager y Tutorial : Crear y probar un parámetro de cadena de caracteres (consola) en la Guía del usuario de Amazon EC2 Systems Manager.

    Si el proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros de Amazon EC2 Systems Manager, el rol de servicio del proyecto de compilación debe permitir la acción ssm:GetParameters. Si se ha seleccionado Crear un nuevo rol de servicio en su cuenta anteriormente, CodeBuild incluye esta acción en el rol de servicio predeterminado del proyecto de compilación automáticamente. Sin embargo, si se ha seleccionado Seleccionar un rol de servicio existente de su cuenta, debe incluir esta acción en su rol de servicio por separado.

    Las variables de entorno que defina reemplazan las variables de entorno existentes. Por ejemplo, si la imagen de Docker ya contiene una variable de entorno denominada MY_VAR con un valor de my_value y establece una variable de entorno denominada MY_VAR con un valor de other_value, my_value se reemplaza por other_value. Asimismo, si la imagen de Docker ya contiene una variable de entorno denominada PATH con un valor de /usr/local/sbin:/usr/local/bin y establece una variable de entorno denominada PATH con un valor de $PATH:/usr/share/ant/bin, /usr/local/sbin:/usr/local/bin se reemplaza por el valor literal $PATH:/usr/share/ant/bin.

    No establezca variables de entorno con un nombre que empiece por CODEBUILD_. Este prefijo se reserva para uso interno de .

    Si se define una variable de entorno con el mismo nombre en varios lugares, el valor de la variable de entorno se determina de la siguiente manera:

    • El valor de la llamada a la operación de inicio de la compilación tiene la máxima prioridad.

    • El valor de la definición del proyecto de compilación es el siguiente en orden de prioridad.

    • El valor en la declaración del archivo buildspec tiene la prioridad más baja.

    Para obtener información sobre los valores válidos para estos marcadores de posición, consulte Crear un proyecto de compilación (AWS CLI). Para obtener una lista de las últimas opciones de configuración de un proyecto de compilación, consulte Ver los detalles de un proyecto de compilación.

  5. Cambie al directorio que contiene el archivo que acaba de guardar y ejecute de nuevo el comando start-build.

    aws codebuild start-build --cli-input-json file://start-build.json
  6. Si el comando se ejecuta correctamente, aparecerán datos similares a los que se describen en el procedimiento Para ejecutar la compilación en el resultado.

Para trabajar con información detallada acerca de esta compilación, anote el valor de id en la salida y después consulte Ver detalles de las compilaciones (AWS CLI).