View a markdown version of this page

Tutorial: Usar etiquetas de Git para iniciar la canalización - 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 etiquetas de Git para iniciar la canalización

En este tutorial, crearás una canalización que se conecte a tu GitHub repositorio donde la acción de origen esté configurada para el tipo de activación de las etiquetas de Git. Cuando se crea una etiqueta Git en una confirmación, se inicia su canalización. En este ejemplo, se muestra cómo crear una canalización que permita filtrar las etiquetas en función de la sintaxis del nombre de la etiqueta. Para obtener más información acerca de filtros con patrones de glob, consulte Trabajar con patrones glob en la sintaxis.

importante

Como parte de la creación de una canalización, para los artefactos se utilizará un depósito de artefactos de S3 proporcionado CodePipeline por el cliente. (Es diferente del bucket que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca a una Cuentas de AWS persona segura y confiable.

Este tutorial se conecta a GitHub través del tipo de acción. CodeStarSourceConnection

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). 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 CodeStarSourceConnection para Bitbucket Cloud GitHub, GitHub Enterprise Server y acciones GitLab.com GitLab autogestionadas.

Requisitos previos

Antes de empezar, debe hacer lo siguiente:

  • Crea un GitHub repositorio con tu GitHub cuenta.

  • Ten tus GitHub credenciales listas. Cuando utilice el Consola de administración de AWS para configurar una conexión, se le pedirá que inicie sesión con sus GitHub credenciales.

Paso 1: Abre CloudShell y clona tu repositorio

Puede usar una interfaz de línea de comandos para clonar su repositorio, realizar confirmaciones y añadir etiquetas. Este tutorial lanza una CloudShell instancia para la interfaz de línea de comandos.

  1. Inicie sesión en Consola de administración de AWS.

  2. En la barra de navegación superior, selecciona el AWS icono. Se muestra la página principal de la Consola de administración de AWS .

  3. En la barra de navegación superior, selecciona el AWS CloudShell icono. CloudShell se abre. Espere mientras se crea el CloudShell entorno.

    nota

    Si no ve el CloudShell icono, asegúrese de que se encuentra en una región compatible con CloudShell. En este tutorial se da por sentado que está en la región de Oeste de EE. UU. (Oregón).

  4. En GitHub, navega hasta tu repositorio. Elija Código, y a continuación, elija HTTPS. Copie la ruta. La dirección para clonar el repositorio Git se copia en el portapapeles.

  5. Ejecute el siguiente comando para clonar el repositorio.

    git clone https://github.com/<account>/MyGitHubRepo.git
  6. Introduzca su GitHub cuenta Username y Password cuando se le solicite. Para la entrada Password, debe usar un token creado por el usuario en lugar de la contraseña de su cuenta.

Paso 2: Crear una canalización para activarla en las etiquetas de Git

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

  • Una fase fuente con una conexión a tu GitHub repositorio y a tu acción.

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

Para crear una canalización con el asistente
  1. Inicia sesión en la CodePipeline consola 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 MyGitHubTagsPipeline.

  5. En Tipo de canalización, mantenga la selección predeterminada en V2. Los tipos de canalización difieren en 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, optas por usar tu rol de CodePipeline servicio actual, asegúrate de haber agregado el permiso de codestar-connections:UseConnection IAM a tu política de roles de servicio. Para obtener instrucciones sobre la función CodePipeline de servicio, consulta Añadir permisos a la función CodePipeline de servicio.

  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 (a través de GitHub la aplicación).

    2. En Conexión, seleccione una conexión existente o cree una nueva. Para crear o gestionar una conexión para tu acción GitHub de origen, consultaGitHub conexiones.

    3. En Repository name (Nombre de repositorio), elija el nombre de su repositorio de GitHub.

    4. En la Ramificación predeterminada, elige la ramificación que quiere especificar cuando la canalización se inicie manualmente o con un evento de origen que no sea una etiqueta de Git. Si la fuente del cambio no es el desencadenador o si la ejecución de una canalización se inició manualmente, el cambio utilizado será la confirmación de HEAD desde la ramificación predeterminada.

    5. En Eventos de webhook, en Tipo de filtro, elija Etiquetas.

      En el campo Etiquetas o patrones, especifique release*.

      importante

      Las canalizaciones que comiencen con un tipo de desencadenador de etiquetas Git se configurarán para los eventos de WebHookV2 y no utilizarán el evento Webhook (detección de cambios en todos los eventos push) para iniciar la canalización.

    Elija Siguiente.

  9. En Add build stage (Añadir etapa de compilación), añada 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 Image, 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. 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:

      version: 0.2 #env: #variables: # key: "value" # key: "value" #parameter-store: # key: "value" # key: "value" #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 #commands: # - command # - command #pre_build: #commands: # - command # - command build: commands: - #post_build: #commands: # - command # - command artifacts: files: - '*' # - location name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. Elige Continuar hasta CodePipeline. Esto vuelve a la CodePipeline consola y crea un CodeBuild proyecto que usa tus comandos de compilación para la configuración. El proyecto de compilación usa un rol de servicio para administrar Servicio de AWS los permisos. 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 fase de implementación, elija Omitir la etapa de implementación y, a continuación, acepte el mensaje de advertencia seleccionando nuevamente Omitir. Elija Siguiente.

  12. En el paso 7: revisar, selecciona Crear canalización.

Paso 3: Etiquetar las confirmaciones para publicarlas

Tras crear tu canalización y especificar las etiquetas de Git, puedes etiquetar las confirmaciones en tu GitHub repositorio. En estos pasos, etiquetará una confirmación con la etiqueta release-1. Cada confirmación de un repositorio de Git debe tener una etiqueta Git única. Si elige la confirmación y la etiqueta, podrá incorporar los cambios de distintas ramificaciones a la implementación de su canalización. Ten en cuenta que el nombre de la etiqueta release no se aplica al concepto de lanzamiento en GitHub.

  1. Haga referencia a los ID de confirmación copiados que desea etiquetar. Para ver las confirmaciones en cada rama, en la CloudShell terminal, introduce el siguiente comando para capturar los ID de confirmación que quieres etiquetar:

    git log
  2. En la CloudShell terminal, introduce el comando para etiquetar tu confirmación y enviarla al origen. Después de etiquetar la confirmación, use el comando de inclusión git para enviar la etiqueta al origen. En el siguiente ejemplo, introduzca el siguiente comando para usar la etiqueta release-1 en la segunda confirmación con ID 49366bd. Esta etiqueta se filtrará mediante el filtro de etiquetas release* de la canalización e iniciará la canalización.

    git tag release-1 49366bd
    git push origin release-1
    Use el terminal para ejecutar el comando para etiquetar una confirmación.

Paso 4: Publicar los cambios y ver los registros

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

    En Registros, consulta el resultado de la CodeBuild compilación. Los comandos muestran el valor de la variable introducida.

  2. En la página Historial, consulte la columna Desencadenadores. Consulta el tipo de desencadenador GitTag : release-1.