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

Puede elegir la opción de clonación completa para su acción de origen de GitHub en CodePipeline. Use esta opción para ejecutar comandos de CodeBuild para metadatos de Git en la acción de compilación de su canalización.

nota

La opción de clonación completa que se describe aquí se refiere a especificar si CodePipeline debe clonar los metadatos del repositorio, que únicamente los comandos de CodeBuild pueden utilizar. Para usar un token de acceso de usuario de GitHub con proyectos de CodeBuild, siga los pasos que se indican aquí para instalar la aplicación AWS Connector for GitHub y, a continuación, deje vacío el campo Instalación de aplicaciones. CodeConnections usará el token de acceso de usuario para la conexión.

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.

En este tutorial, creará una canalización que conecte a su repositorio de GitHub, 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

Esta característica no está disponible en las regiones de Asia-Pacífico (Hong Kong), África (Ciudad del Cabo), Medio Oriente (Baréin), Europa (Zúrich) o AWS GovCloud (Oeste de EE. UU.). Para hacer referencia a otras acciones disponibles, consulte Integraciones de productos y servicios con CodePipeline. Para ver consideraciones sobre esta acción en la región de Europa (Milán), consulte la nota que aparece en Acciones de CodeStarSourceConnection para Bitbucket Cloud, GitHub, GitHub Enterprise Server, GitLab.com y GitLab autoadministrado.

Requisitos previos

Antes de empezar, debe hacer lo siguiente:

  • Cree un repositorio de GitHub con su cuenta de GitHub.

  • Tenga listas las credenciales de GitHub. Cuando utiliza la Consola de administración de AWS para configurar una conexión, se le pide que inicie sesión con sus credenciales de GitHub.

Paso 1: Crear un archivo README

Después de crear su repositorio de GitHub, siga estos pasos para añadir un archivo README.

  1. Inicie sesión en su repositorio de GitHub y elija su repositorio.

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

    This is a GitHub 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 conexión a la acción y el repositorio de GitHub

  • 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 MyGitHubPipeline.

  5. En Tipo de canalización, elija V1 para los fines de este tutorial. También puede elegir V2; sin embargo, tenga en cuenta que los tipos de canalización difieren en cuanto a características y precio. Para obtener más información, consulte Tipos de canalización.

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

    nota

    Si, en cambio, elige utilizar la función de servicio de CodePipeline existente, asegúrese de haber agregado el permiso de IAM codestar-connections:UseConnection a la política de la función de servicio. Para obtener instrucciones acerca de la función de servicio de CodePipeline, consulte Agregar permisos a la función de servicio de CodePipeline.

  7. Para Configuración avanzada deje los valores predeterminados. En Artifact store (Almacén de artefactos), elija Default location (Ubicación predeterminada) para utilizar el almacén de artefactos predeterminado, como el bucket de artefacto de Amazon S3 que se estableció como predeterminado, para la canalización en la región que seleccionó para esta.

    nota

    Este no es el bucket de origen para su código fuente. Este es el almacén de artefactos de la canalización. Cada canalización debe tener su propio almacén de artefactos independiente, como un bucket de S3.

    Elija Siguiente.

  8. En la página Paso 3: agregar la etapa de origen, agregue una etapa de origen:

    1. En Proveedor de origen, elija GitHub (mediante la aplicación de GitHub).

    2. En Conexión, seleccione una conexión existente o cree una nueva. Para crear o administrar una conexión para su acción de origen de GitHub, consulte GitHub conexiones.

      Se instala una aplicación para todas las conexiones a un proveedor en particular. Si ya instaló la aplicación AWS Connector for GitHub, elija la aplicación y omita este paso.

      nota

      Si desea crear un token de acceso de usuario, asegúrese de que ya haya instalado la aplicación AWS Connector for GitHub y deje vacío el campo Instalación de aplicaciones. CodeConnections usará el token de acceso de usuario para la conexión. Para obtener más información, consulte Acceso a su proveedor de origen en CodeBuild.

    3. En Nombre de repositorio, elija el nombre de su repositorio de GitHub.

    4. En Nombre de ramificación, elija la ramificación de repositorio que desea utilizar.

    5. 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.

    6. 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. Utilizará Paso 3: Actualizare la política de roles de servicio de CodeBuild para usar conexiones en este tutorial para actualizar los permisos para su rol de servicio del proyecto CodeBuild para utilizar esta opción.

    Elija Siguiente.

  9. En Paso 4: agregación de la etapa de compilación, agregue una etapa de compilación:

    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 pegue lo siguiente en Comandos de compilación:

      nota

      En la sección env de la especificación de compilación, asegúrese de que el ayudante de credenciales para los comandos de git esté habilitado, como se muestra en este ejemplo.

      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 archive --format=zip HEAD > application.zip #post_build: #commands: # - command # - command artifacts: files: - application.zip # - 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: Actualizare la política de roles de servicio de CodeBuild para usar conexiones

La ejecución inicial de la canalización fallará porque el rol de servicio de CodeBuild debe actualizarse con permisos para usar las conexiones. Añada el permiso de IAM de codestar-connections:UseConnection 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 conexiones a Bitbucket, Enterprise Server o .com GitHub GitHub GitLab.

Paso 4: Ver comandos del repositorio en 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 archivan el repositorio como un archivo ZIP.