Tutorial: Usar una clonación completo con un origen de canalización de CodeCommit - 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.

Tutorial: Usar una clonación completo con un origen de canalización de CodeCommit

Puede elegir la opción de clonación completa para su acción de origen de CodeCommit en CodePipeline. Use esta opción para permitir que CodeBuild acceda a los metadatos de Git en la acción de compilación de su canalización.

En este tutorial, crea una canalización que accede a su repositorio de CodeCommit, usa la opción de clonación completa para los datos de origen y ejecuta una compilación de CodeBuild que clona su repositorio y ejecuta comandos de Git para el repositorio.

nota

Las acciones de CodeBuild son las únicas acciones posteriores que admiten el uso de metadatos de Git disponibles con la opción de clonación de Git. Además, aunque su canalización puede contener acciones multicuenta, la acción CodeCommit y la acción CodeBuild deben estar en la misma cuenta para que la opción de clonación completa se ejecute correctamente.

importante

Como parte de la creación de una canalización, CodePipeline utilizará un bucket de artefactos de S3 proporcionado por el cliente para los artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el bucket de artefactos de S3 se encuentra en una cuenta diferente a la cuenta de su canalización, asegúrese de que el bucket de artefactos de S3 pertenezca a Cuentas de AWS que sean seguras y fiables.

Requisitos previos

Antes de comenzar, debe crear una recopilación de CodeCommit en la misma cuenta y región de AWS que la canalización.

Paso 1: Crear un archivo README

Siga estos pasos para añadir un archivo README a su repositorio de origen. El archivo README proporciona un archivo de origen de ejemplo para que lo lea la acción descendente de CodeBuild.

Para añadir un archivo README
  1. Inicie sesión en su repositorio y elija su repositorio.

  2. Para crear un nuevo archivo, seleccione Añadir archivo > Crear archivo. Asigne un nombre al archivo README.md. y añada el siguiente texto.

    This is a CodeCommit repository!
  3. Seleccione Confirmar cambios.

    Asegúrese de que el archivo README.md está en el nivel raíz del repositorio.

Paso 2: Crear la canalización y compilar el proyecto

En esta sección, debe crear una canalización con las siguientes acciones:

  • Una etapa de origen con una acción de origen de CodeCommit.

  • Una etapa de compilación con una acción de compilación de AWS CodeBuild.

Para crear una canalización con el asistente
  1. Inicie sesión en la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/.

  2. En la página Bienvenido, Introducción o en la página Canalizaciones, elija Crear canalización.

  3. En la página Paso 1: elección de la opción de creación, en Opciones de creación, seleccione la opción Crear una canalización personalizada. Elija Siguiente.

  4. En Paso 2: elegir la configuración de la canalización, en Nombre de la canalización, escriba MyCodeCommitPipeline.

  5. CodePipeline proporciona canalizaciones de tipo V1 y V2, que difieren en características y precio. El tipo V2 es el único tipo que puede elegir en la consola. Para obtener más información, consulte Tipos de canalización. Para obtener más información acerca de los precios de CodePipeline, consulte Precios.

  6. En Service role (Rol de servicio), realice una de las operaciones siguientes:

    • Elija Existing service role (Rol de servicio existente)

    • Elija su rol de servicio de CodePipeline actual. El rol debe tener el permiso de IAM de codecommit:GetRepository para la política de rol de servicio. Consulte Añadir permisos al rol de servicio de CodePipeline.

  7. Para Configuración avanzada deje los valores predeterminados. Elija Siguiente.

  8. En la página Paso 3: agregar la etapa de origen, haga lo siguiente:

    1. En Proveedor de origen, elija CodeCommit.

    2. En Nombre de repositorio, elija el nombre de su repositorio.

    3. En Nombre de ramificación, elija el nombre de su ramificación.

    4. Asegúrese de que la opción Start the pipeline on source code change (Iniciar la canalización en el cambio del código fuente) está seleccionada.

    5. En Formato de artefacto de salida, seleccione Clonación completa para habilitar la opción de clonación de Git para el repositorio de origen. Solo las acciones proporcionadas por CodeBuild pueden usar la opción de clonación de Git.

    Elija Siguiente.

  9. En Paso 4: agregación de la etapa de compilación, haga lo siguiente:

    1. En Build provider (Proveedor de compilación), elija AWS CodeBuild. En el campo Region (Región) conserve el valor predeterminado de la región de la canalización.

    2. Elija Crear proyecto.

    3. En Project name (Nombre de proyecto), escriba un nombre para este proyecto de compilación.

    4. En Environment image (Imagen de entorno), elija Managed image (Imagen administrada). En Operating system (Sistema operativo), elija Ubuntu.

    5. En Runtime, elija Standard (Estándar). En Imagen, elija aws/codebuild/standard:5.0.

    6. En Service role (Rol de servicio), elija New service role (Nuevo rol de servicio).

      nota

      Anote el nombre de su rol de servicio de CodeBuild. Necesitará el nombre del rol para el paso final de este tutorial.

    7. En Buildspec, para Build specifications (Especificaciones de la compilación), elija Insert build commands (Insertar comandos de compilación). Elija Cambiar a editor y en Comandos de compilación pegue el código siguiente:

      version: 0.2 env: git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 # name: version #commands: # - command # - command pre_build: commands: - ls -lt - cat README.md build: commands: - git log | head -100 - git status - ls - git describe --all #post_build: #commands: # - command # - command #artifacts: #files: # - location #name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. Elija Continue to CodePipeline (Continuar en CodePipeline). Esto vuelve a la consola de CodePipeline y crea un proyecto de CodePipeline que utiliza los comandos de compilación para la configuración. El proyecto de compilación utiliza un rol de servicio para administrar los permisos del Servicio de AWS. Es posible que este paso tarde un par de minutos.

    9. Elija Siguiente.

  10. En Paso 5: agregación de la etapa de prueba, elija Omitir la etapa de prueba y, a continuación, acepte el mensaje de advertencia eligiendo Omitir una vez más.

    Elija Siguiente.

  11. En la página Paso 6: agregar la etapa de implementación, elija Omitir la etapa de implementación y, a continuación, acepte el mensaje de advertencia eligiendo Omitir una vez más. Elija Siguiente.

  12. En el Paso 7: revisión, elija Crear la canalización.

Paso 3: Actualizar la política de roles de servicio de CodeBuild para clonar el repositorio

La ejecución inicial de la canalización fallará porque necesitas actualizar el rol de servicio de CodeBuild con permisos para extraerlos de tu repositorio.

Añada el permiso de IAM de codecommit:GitPull a la política de roles de servicio. Para obtener instrucciones sobre cómo actualizar la política en la consola de IAM, consulte Añade CodeBuild GitClone permisos para las acciones CodeCommit de origen.

Paso 4: Ver comandos del repositorio en el resultado de la compilación

Para ver el resultado de la compilación
  1. Cuando su rol de servicio se haya actualizado correctamente, elija Reintentar en la etapa de CodeBuild fallida.

  2. Después de que la canalización se ejecute correctamente, en la etapa de implementación, elija Ver detalles.

    En la página de detalles, elija la pestaña Registros. Consulte el resultado de la compilación de CodeBuild. Los comandos muestran el valor de la variable introducida.

    Los comandos muestran el contenido del archivo README.md, muestran los archivos en el directorio, clonan el repositorio, visualizan el registro y ejecutan git describe --all.