Agregación de desencadenadores con tipos de eventos de solicitud de inserción o extracción de código - AWS CodePipeline

Agregación de desencadenadores con tipos de eventos de solicitud de inserción o extracción de código

Puede configurar filtros para que los desencadenadores de canalización inicien las ejecuciones de canalización para diferentes eventos de Git, como la inserción de etiquetas o ramificaciones, los cambios en rutas de archivo específicas, las solicitudes de extracción abiertas en una ramificación específica, etc. Puede usar la consola de AWS CodePipeline o los comandos create-pipeline y update-pipeline de la AWS CLI para configurar filtros de desencadenadores.

nota

El campo BranchName de configuración una acción define una sola rama, mientras que los desencadenadores con filtros se pueden usar para las ramas que se especifiquen. En el caso de una canalización en la que se utilizan desencadenadores para filtrar las ramas por solicitud de inserción o extracción, la canalización no utilizará la rama predeterminada del campo BranchName en la configuración de la acción. Sin embargo, la rama del campo BranchName en la configuración de la acción es la predeterminada cuando la canalización se inicia manualmente. Para ver un ejemplo, consulta 5: desencadenador configurado mientras se utiliza la configuración de acción predeterminada BranchName para un inicio manual.

Puede especificar filtros para los siguientes tipos de desencadenadores:

  • Push (Insertar

    Un desencadenador de inserción inicia una canalización cuando se envía un cambio al repositorio de origen. La ejecución utilizará la confirmación de la ramificación a la que se realice la inserción (es decir, la ramificación de destino). Puede filtrar desencadenadores de inserción en ramificaciones, rutas de archivo o etiquetas de Git.

  • Solicitud de extracción

    Un desencadenador de solicitud de extracción inicia una canalización cuando se abre, actualiza o cierra una solicitud de extracción en el repositorio de origen. La ejecución utilizará la confirmación de la ramificación de origen a la que se realice la extracción (es decir, la ramificación de origen). Puede filtrar los desencadenadores de las solicitudes de extracción por ramificaciones y rutas de archivo.

    Los tipos de eventos admitidos para las solicitudes de extracción se incluyen a continuación. Todos los demás eventos de solicitudes de extracción no se tienen en cuenta.

    • Opened (Abiertos)

    • Actualizado

    • Cerrado (fusionado)

    nota

    El comportamiento de algunos eventos de solicitud de extracción puede variar según el proveedor. Para obtener más información, consulte Eventos de solicitud de extracción para desencadenadores, por proveedor.

La definición de canalización permite combinar diferentes filtros en la misma configuración de desencadenador de inserción. Para obtener más detalles acerca de la definición de canalización, consulte Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (CLI). Para obtener una lista de las definiciones de campos, consulte los desencadenadores en la Referencia de la estructura de canalización de esta guía.

Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (consola)

Puede utilizar la consola para agregar filtros para los eventos de inserción, así como incluir o excluir ramificaciones o rutas de archivo.

Agregación de filtros (consola)
  1. Inicie sesión en la Consola de administración de AWS y abra la consola de CodePipeline en http://console.aws.amazon.com/codesuite/codepipeline/home.

    Se muestran los nombres y estados de todas las canalizaciones asociadas con su cuenta de AWS.

  2. En Nombre, elija el nombre de la canalización que desea editar. De lo contrario, siga estos pasos en el asistente de creación de canalizaciones.

  3. En la página de detalles de la canalización, elija Edit.

  4. En la página Editar, seleccione la acción de origen que desee editar. Seleccione Editar activadores. Elija Especificar filtro.

  5. En Tipo de evento, elija Insertar entre las siguientes opciones.

    • Seleccione Insertar para iniciar la canalización cuando se inserte un cambio en su repositorio de origen. Al elegir esta opción, los campos especifican filtros para las ramificaciones y las rutas de archivo o las etiquetas de Git.

    • Seleccione Solicitud de extracción para iniciar una canalización cuando se abra, actualice o cierre una solicitud de extracción en el repositorio de origen. Al elegir esta opción, los campos especifican filtros para las ramificaciones de destino y las rutas de archivo.

  6. En Inserción, en Tipo de filtro, elija una de las siguientes opciones.

    • Seleccione Ramificación para especificar las ramificaciones del repositorio de origen que el desencadenador supervisa para saber cuándo iniciar la ejecución de un flujo de trabajo. En Incluir, introduzca los patrones de los nombres de las ramificaciones en formato glob que desee especificar para la configuración de desencadenador a fin de iniciar la canalización al realizar cambios en las ramificaciones especificadas. En Excluir, introduzca los patrones regex de los nombres de las ramificaciones en formato glob que desee especificar para que la configuración del desencadenador los ignore y no se inicie la canalización al realizar cambios en las ramificaciones especificadas. Para obtener más información, consulte Trabajar con patrones glob en la sintaxis.

      nota

      Si tanto la inclusión como la exclusión tienen el mismo patrón, la opción predeterminada es excluir el patrón.

      Puede usar patrones glob para definir los nombres de las ramificaciones. Por ejemplo, use main* para hacer coincidir todas las ramificaciones que comiencen por main. Para obtener más información, consulte Trabajar con patrones glob en la sintaxis.

      En el caso de un desencadenador de inserción, especifique las ramificaciones en las que va a realizar la inserción, es decir, las ramificaciones de destino. En el caso de un desencadenador de solicitud de extracción, especifique las ramificaciones de destino en las que se va a abrir la solicitud de extracción.

    • (Opcional) En Rutas de archivo, especifique las rutas de archivo para su desencadenador. Introduzca los nombres en Incluir y Excluir según corresponda.

      Puede usar patrones glob para definir los nombres de las rutas de archivo. Por ejemplo, use prod* para hacer coincidir todas las rutas de archivo que comiencen por prod. Para obtener más información, consulte Trabajar con patrones glob en la sintaxis.

    • Para configurar la configuración del desencadenador de canalización para que comience con las etiquetas de Git, seleccione Etiquetas. En Incluir, introduzca los patrones de los nombres de las etiquetas en formato glob que desee especificar para la configuración del desencadenador a fin de iniciar la canalización al liberar la etiqueta o etiquetas especificadas. En Excluir, introduzca los patrones regex de los nombres de las etiquetas en formato glob que desee especificar para que la configuración del desencadenador los ignore y no inicie la canalización al liberar la etiqueta o etiquetas especificadas. Si tanto la inclusión como la exclusión tienen el mismo patrón de etiquetas, la opción predeterminada es excluir el patrón de etiquetas.

  7. En Inserción, en Tipo de filtro, elija una de las siguientes opciones.

    • Seleccione Ramificación para especificar las ramificaciones del repositorio de origen que el desencadenador supervisa para saber cuándo iniciar la ejecución de un flujo de trabajo. En Incluir, introduzca los patrones de los nombres de las ramificaciones en formato glob que desee especificar para la configuración de desencadenador a fin de iniciar la canalización al realizar cambios en las ramificaciones especificadas. En Excluir, introduzca los patrones regex de los nombres de las ramificaciones en formato glob que desee especificar para que la configuración del desencadenador los ignore y no se inicie la canalización al realizar cambios en las ramificaciones especificadas. Para obtener más información, consulte Trabajar con patrones glob en la sintaxis.

      nota

      Si tanto la inclusión como la exclusión tienen el mismo patrón, la opción predeterminada es excluir el patrón.

      Puede usar patrones glob para definir los nombres de las ramificaciones. Por ejemplo, use main* para hacer coincidir todas las ramificaciones que comiencen por main. Para obtener más información, consulte Trabajar con patrones glob en la sintaxis.

      En el caso de un desencadenador de inserción, especifique las ramificaciones en las que va a realizar la inserción, es decir, las ramificaciones de destino. En el caso de un desencadenador de solicitud de extracción, especifique las ramificaciones de destino en las que se va a abrir la solicitud de extracción.

    • (Opcional) En Rutas de archivo, especifique las rutas de archivo para su desencadenador. Introduzca los nombres en Incluir y Excluir según corresponda.

      Puede usar patrones glob para definir los nombres de las rutas de archivo. Por ejemplo, use prod* para hacer coincidir todas las rutas de archivo que comiencen por prod. Para obtener más información, consulte Trabajar con patrones glob en la sintaxis.

    • Elija Solicitud de extracción para establecer la configuración de los desencadenadores de modo que se empiece con los eventos de solicitud de extracción que se especifiquen.

Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (CLI)

Puede actualizar el archivo JSON de la canalización para agregar filtros a los desencadenadores.

Para utilizar la AWS CLI con el objetivo de crear o actualizar la canalización, utilice el comando create-pipeline o update-pipeline.

El siguiente ejemplo de estructura JSON proporciona una referencia para las definiciones de campo mediante create-pipeline.

Para obtener una lista de las definiciones de campos, consulte los desencadenadores en la Referencia de la estructura de canalización de esta guía.

{ "pipeline": { "name": "MyServicePipeline", "triggers": [ { "provider": "Connection", "gitConfiguration": { "sourceActionName": "ApplicationSource", "push": [ { "filePaths": { "includes": [ "projectA/**", "common/**/*.js" ], "excludes": [ "**/README.md", "**/LICENSE", "**/CONTRIBUTING.md" ] }, "branches": { "includes": [ "feature/**", "release/**" ], "excludes": [ "mainline" ] }, "tags": { "includes": [ "release-v0", "release-v1" ], "excludes": [ "release-v2" ] } } ], "pullRequest": [ { "events": [ "CLOSED" ], "branches": { "includes": [ "feature/**", "release/**" ], "excludes": [ "mainline" ] }, "filePaths": { "includes": [ "projectA/**", "common/**/*.js" ], "excludes": [ "**/README.md", "**/LICENSE", "**/CONTRIBUTING.md" ] } } ] } } ], "stages": [ { "name": "Source", "actions": [ { "name": "ApplicationSource", "configuration": { "BranchName": "mainline", "ConnectionArn": "arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f8EXAMPLE", "FullRepositoryId": "monorepo-example", "OutputArtifactFormat": "CODE_ZIP" } } ] } ] } }

Agregación de filtros para los tipos de eventos de solicitud de inserción y extracción (plantillas de CloudFormation)

Puede actualizar el recurso de canalización en CloudFormation para agregar el filtrado de desencadenadores.

A continuación se muestra un ejemplo de un fragmento de plantilla que proporciona una referencia de YAML para las definiciones de los campos de desencadenadores. Para obtener una lista de las definiciones de campos, consulte los desencadenadores en la Referencia de la estructura de canalización de esta guía.

Para ver un ejemplo de plantilla completo para un origen de conexión y la configuración de filtros de desencadenadores, consulte Canalización con dos etapas y configuración de desencadenadores en la Guía del usuario de CloudFormation.

pipeline: name: MyServicePipeline executionMode: PARALLEL triggers: - provider: CodeConnection gitConfiguration: sourceActionName: ApplicationSource push: - filePaths: includes: - projectA/** - common/**/*.js excludes: - '**/README.md' - '**/LICENSE' - '**/CONTRIBUTING.md' branches: includes: - feature/** - release/** excludes: - mainline - tags: includes: - release-v0 - release-v1 excludes: - release-v2 pullRequest: - events: - CLOSED branches: includes: - feature/** - release/** excludes: - mainline filePaths: includes: - projectA/** - common/**/*.js excludes: - '**/README.md' - '**/LICENSE' - '**/CONTRIBUTING.md' stages: - name: Source actions: - name: ApplicationSource configuration: BranchName: mainline ConnectionArn: arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f85EXAMPLE FullRepositoryId: monorepo-example OutputArtifactFormat: CODE_ZIP