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.
Trabajar con factores desencadenantes
Un activador de flujo de trabajo, o simplemente un activador, te permite iniciar la ejecución automática de un flujo de trabajo cuando se producen determinados eventos, como cuando se introduce un código. Es posible que desee configurar los activadores para evitar que los desarrolladores de software tengan que iniciar manualmente las ejecuciones del flujo de trabajo a través de la CodeCatalyst consola.
Puede utilizar tres tipos de activadores:
-
Empujar: un activador de inserción de código hace que se inicie la ejecución de un flujo de trabajo cada vez que se ejecuta una confirmación.
-
Solicitud de extracción: cuando se activa una solicitud de extracción, se inicia la ejecución de un flujo de trabajo cada vez que se crea, revisa o cierra una solicitud de extracción.
-
Programación: un activador de programación hace que la ejecución de un flujo de trabajo comience según el cronograma que tú definas. Considere la posibilidad de utilizar un activador programado para ejecutar versiones nocturnas de su software, de modo que la última versión esté lista para que los desarrolladores de software puedan trabajar en ella a la mañana siguiente.
Puedes usar activadores push, pull request y programables solos o combinados en el mismo flujo de trabajo.
sugerencia
Para ver un desencadenante en acción, lanza un proyecto con un plano. La mayoría de los blueprints contienen un flujo de trabajo con un activador. Busque la Trigger
propiedad en el archivo de definición del flujo de trabajo del blueprint. Para obtener más información acerca de los esquemas, consulte Crear un proyecto con un plano.
Temas
Una configuración de disparadores común
En esta sección se describe cómo configurar los desencadenantes para una estrategia común de lanzamiento y ramificación de software.
Estrategia de lanzamiento y ramificación del software:
-
Tiene el código de la aplicación en un repositorio fuente.
-
Su
main
rama contiene el código finalizado que siempre está listo para su publicación. -
Los desarrolladores de software realizan los cambios en las ramas de funciones ajenas a la rama.
main
-
Tus desarrolladores de software crean una solicitud de cambios en la que se les pide que fusionen su rama de funciones con la rama de funciones
main
cuando la función esté lista.Quieres que esta solicitud de extracción inicie automáticamente un flujo de trabajo que cree y pruebe (pero no despliegue) la aplicación utilizando los archivos de la rama de funciones del desarrollador de software.
-
Los desarrolladores de software comprueban la compilación y las pruebas para asegurarse de que todo se ve bien. Luego, fusionan la solicitud de extracción en la
main
sucursal.Desea que la fusión inicie automáticamente un flujo de trabajo que cree e implemente el código de su aplicación.
Configuración propuesta de flujo de trabajo o activación:
Dada la estrategia de ramificación del software descrita anteriormente, es posible que desee utilizar dos flujos de trabajo:
-
El flujo de trabajo 1 crea y prueba tu aplicación cuando se crea o revisa una solicitud de extracción.
-
El flujo de trabajo 2 crea e implementa tu aplicación cuando se fusiona una solicitud de extracción.
El flujo de trabajo 1 tendría este aspecto:
Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION Actions: BuildAction:
instructions-for-building-the-app
TestAction:instructions-for-test-the-app
El código de activación anterior inicia automáticamente la ejecución de un flujo de trabajo cada vez que un desarrollador de software crea una solicitud de extracción (o modifica una) solicitando la fusión de su rama de funciones con la main
rama. CodeCatalyst inicia la ejecución de un flujo de trabajo con el código de la rama fuente (es decir, la rama de funciones del desarrollador). El flujo de trabajo crea e implementa la aplicación.
El flujo de trabajo 2 tendría este aspecto:
Triggers: - Type: PUSH Branches: - main Actions: BuildAction:
instructions-for-building-the-app
DeployAction:instructions-for-deploying-the-app
En el código de activación anterior, cuando main
se produce una fusión, se activa el PUSH
activador. CodeCatalyst inicia la ejecución de un flujo de trabajo con el código de la main
rama (que ahora incluye el código de la solicitud de extracción). El flujo de trabajo crea e implementa la aplicación.
Para obtener instrucciones sobre cómo añadir activadores a un archivo de definición de flujo de trabajo, consulteAñadir un gatillo para pulsar, tirar o programar.
Para ver más ejemplos de desencadenantes y explicaciones adicionales, consulteEjemplos de desencadenantes.
Consideraciones sobre los factores desencadenantes al ramificar
En esta sección, se describen algunas de las principales consideraciones a la hora de configurar activadores que incluyan sucursales.
-
Consideración 1: Tanto para los activadores de solicitudes push como para los de extracción, si va a especificar una rama, debe especificar la rama de destino (o «destino») en la configuración del disparador. Nunca especifiques la rama de origen (o «de»).
En el siguiente ejemplo, una pulsación desde cualquier rama para
main
activar el flujo de trabajo.Triggers: - Type: PUSH Branches: - main
En el siguiente ejemplo, una solicitud de extracción desde cualquier sucursal
main
activa el flujo de trabajo.Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION
-
Consideración 2: En el caso de los activadores push, una vez activado el flujo de trabajo, el flujo de trabajo se ejecutará con el archivo de definición del flujo de trabajo y los archivos fuente de la rama de destino.
-
Consideración 3: En el caso de los activadores de solicitudes de extracción, una vez activado el flujo de trabajo, el flujo de trabajo se ejecutará con el archivo de definición del flujo de trabajo y los archivos fuente de la rama de origen (aunque hayas especificado la rama de destino en la configuración del desencadenador).
-
Consideración 4: Es posible que el mismo activador exacto en una rama no se ejecute en otra rama.
Considera el siguiente disparador pulsador:
Triggers: - Type: PUSH Branches: - main
Si el archivo de definición del flujo de trabajo que contiene este activador existe
main
y se clona en éltest
, el flujo de trabajo nunca empezará automáticamente a utilizar los archivos incluidostest
(aunque puede iniciar el flujo de trabajo manualmente si utiliza los archivos detest
). Revise las consideraciones 1 y 2 para entender por qué el flujo de trabajo nunca se ejecutará automáticamente con los archivos incluidos.test
Considera también el siguiente desencadenante de una solicitud de atracción:
Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION
Si el archivo de definición del flujo de trabajo que contiene este activador existe en
main
, el flujo de trabajo nunca se ejecutará con los archivos que contienemain
. (Sin embargo, si crea unatest
ramificación a partir demain
, el flujo de trabajo se ejecutará con los archivos incluidos)test
. Revise las consideraciones 1 y 3 para entender por qué.
Añadir un gatillo para pulsar, tirar o programar
Sigue las siguientes instrucciones para añadir un activador de inserción, tracción o programación a tu flujo de trabajo.
Ejemplos de desencadenantes
Los siguientes ejemplos muestran cómo añadir distintos tipos de activadores en el archivo de definición del flujo de trabajo.
Temas
- Ejemplo: un sencillo disparador por pulsación de código
- Ejemplo: un simple disparador de «pulsar el botón principal»
- Ejemplo: un sencillo activador de una solicitud de extracción
- Ejemplo: un sencillo disparador programado
- Ejemplo: un disparador con un horario y ramificaciones
- Ejemplo: un disparador con un horario, una pulsación y ramificaciones
- Ejemplo: un gatillo que se tira y se ramifica
- Ejemplo: un gatillo al que se tira, se ramifica y se activa el evento «CERRADO»
- Ejemplo: un disparador con una pulsación, ramas y archivos
Ejemplo: un sencillo disparador por pulsación de código
El siguiente ejemplo muestra un activador que inicia la ejecución de un flujo de trabajo cada vez que se envía código a cualquier rama del repositorio de código fuente.
Cuando se activa este activador, se CodeCatalyst inicia una ejecución de flujo de trabajo con los archivos de la rama a la que estás accediendo (es decir, la rama de destino).
Por ejemplo, si presionas una confirmación amain
, se CodeCatalyst inicia una ejecución de flujo de trabajo utilizando el archivo de definición del flujo de trabajo y otros archivos fuente. main
Como otro ejemplo, si se envía una confirmación afeature-branch-123
, se CodeCatalyst inicia una ejecución de flujo de trabajo utilizando el archivo de definición del flujo de trabajo y otros archivos fuente activados. feature-branch-123
Triggers: - Type: PUSH
nota
Si desea que la ejecución de un flujo de trabajo se inicie solo cuando presionemain
, consulte. Ejemplo: un simple disparador de «pulsar el botón principal»
Ejemplo: un simple disparador de «pulsar el botón principal»
En el siguiente ejemplo, se muestra un activador que inicia la ejecución de un flujo de trabajo cada vez que se envía código a la rama (main
y solo a la rama) del main
repositorio de código fuente.
Triggers: - Type: PUSH Branches: - main
Ejemplo: un sencillo activador de una solicitud de extracción
El siguiente ejemplo muestra un activador que inicia la ejecución de un flujo de trabajo cada vez que se crea o revisa una solicitud de extracción en tu repositorio de origen.
Cuando se activa este activador, CodeCatalyst inicia la ejecución de un flujo de trabajo con el archivo de definición del flujo de trabajo y otros archivos fuente de la rama de la que estás extrayendo (es decir, la rama de origen).
Por ejemplo, si creas una solicitud de extracción con una rama de origen llamada feature-123
y una rama de destino llamadamain
, CodeCatalyst inicia una ejecución de flujo de trabajo utilizando el archivo de definición del flujo de trabajo y otros archivos de origen. feature-123
Triggers: - Type: PULLREQUEST Events: - OPEN - REVISION
Ejemplo: un sencillo disparador programado
El siguiente ejemplo muestra un activador que inicia la ejecución de un flujo de trabajo a medianoche (UTC+0) de lunes a viernes.
Cuando se activa este activador, se CodeCatalyst inicia una sola ejecución de flujo de trabajo para cada rama del repositorio de origen que contenga un archivo de definición de flujo de trabajo con este activador.
Por ejemplo, si tienes tres ramas en tu repositorio de origen, main
release-v1
feature-123
, y cada una de estas ramas contiene un archivo de definición de flujo de trabajo con el siguiente desencadenante, CodeCatalyst inicia tres ejecuciones de flujo de trabajo: una con los archivos de dentromain
, otra con los archivos de y otra con los archivos defeature-123
. release-v1
Triggers: - Type: SCHEDULE Expression: "0 0 ? * MON-FRI *"
Para ver más ejemplos de expresiones cron que puede utilizar en la Expression
propiedad, consulteExpression.
Ejemplo: un disparador con un horario y ramificaciones
El siguiente ejemplo muestra un disparador que inicia una ejecución de flujo de trabajo a las 18:15 (UTC+0) todos los días.
Cuando se activa este activador, CodeCatalyst inicia una ejecución de flujo de trabajo con los archivos de la main
rama e inicia ejecuciones adicionales para cada rama que comience con. release-
Por ejemplo, si tiene ramas denominadasmain
, release-v1
bugfix-1
, y bugfix-2
en el repositorio de origen, CodeCatalyst inicia dos ejecuciones de flujo de trabajo: una con los archivos de y otra con los archivos derelease-v1
. main
No inicia las ejecuciones de flujo de trabajo de las bugfix-1
ramas bugfix-1
y.
Triggers: - Type: SCHEDULE Expression: "15 18 * * ? *" Branches: - main - release\-.*
Para ver más ejemplos de expresiones cron que puede utilizar en la Expression
propiedad, consulteExpression.
Ejemplo: un disparador con un horario, una pulsación y ramificaciones
El siguiente ejemplo muestra un activador que inicia un flujo de trabajo que se ejecuta a medianoche (UTC+0) todos los días y siempre que se envía código a la sucursal. main
En este ejemplo:
-
La ejecución de un flujo de trabajo comienza todos los días a medianoche. La ejecución del flujo de trabajo utiliza el archivo de definición del flujo de trabajo y otros archivos fuente de la
main
rama. -
La ejecución de un flujo de trabajo también se inicia cada vez que envías una confirmación a la
main
rama. La ejecución del flujo de trabajo utiliza el archivo de definición del flujo de trabajo y otros archivos de origen de la rama de destino (main
).
Triggers: - Type: SCHEDULE Expression: "0 0 * * ? *" Branches: - main - Type: PUSH Branches: - main
Para ver más ejemplos de expresiones cron que puede utilizar en la Expression
propiedad, consulteExpression.
Ejemplo: un gatillo que se tira y se ramifica
En el siguiente ejemplo, se muestra un activador que inicia la ejecución de un flujo de trabajo cada vez que alguien abre o modifica una solicitud de extracción con una sucursal de destino llamadamain
. Aunque la rama especificada en la Triggers
configuración lo seamain
, la ejecución del flujo de trabajo utilizará el archivo de definición del flujo de trabajo y otros archivos fuente de la rama de origen (que es la rama de la que se extrae).
Triggers: - Type: PULLREQUEST Branches: - main Events: - OPEN - REVISION
Ejemplo: un gatillo al que se tira, se ramifica y se activa el evento «CERRADO»
En el siguiente ejemplo, se muestra un activador que inicia la ejecución de un flujo de trabajo cada vez que se cierra una solicitud de extracción en una rama que comienza conmain
.
En este ejemplo:
-
Cuando cierras una solicitud de extracción con una rama de destino por la que comienza
main
, una ejecución de flujo de trabajo se inicia automáticamente con el archivo de definición del flujo de trabajo y otros archivos fuente de la rama de origen (ahora cerrada). -
Si has configurado tu repositorio de origen para que elimine las ramas automáticamente después de fusionar una solicitud de extracción, estas sucursales nunca tendrán la oportunidad de entrar en ese
CLOSED
estado. Esto significa que las sucursales fusionadas no activarán elCLOSED
activador de la solicitud de extracción. La única forma de activar elCLOSED
activador en este escenario es cerrar la solicitud de extracción sin fusionarla.
Triggers: - Type: PULLREQUEST Branches: - main.* Events: - CLOSED
Ejemplo: un disparador con una pulsación, ramas y archivos
El siguiente ejemplo muestra un activador que inicia la ejecución de un flujo de trabajo cada vez que se realiza un cambio en el filename.txt
archivo, o en cualquier archivo del src
directorio, de la main
rama.
Cuando se activa este activador, CodeCatalyst inicia una ejecución de flujo de trabajo con el archivo de definición del flujo de trabajo y otros archivos fuente de la main
rama.
Triggers: - Type: PUSH Branches: - main FilesChanged: - filename.txt - src\/.*