Nota: Los ejecutores hospedados en GitHub no son compatibles con GitHub Enterprise Server actualmente. Puedes encontrar más información sobre el soporte que se tiene planeado en el futuro en el Itinerario público de GitHub.
Se requiere tener acceso de escritura en el repositorio para llevar a cabo estos pasos.
Cancelar una ejecución de flujo de trabajo
- En tu instancia de GitHub Enterprise Server, visita la página principal del repositorio.
- Debajo de tu nombre de repositorio, haz clic en Acciones.
- En la barra lateral izquierda, da clic en el flujo de trabajo que quieres ver.
- Desde la lista de ejecuciones de flujo de trabajo, da clic en el nombre de la ejecución en estado de
queued
oin progress
que quieras cancelar. - En la esquina superior derecha del flujo de trabajo, da clic en Cancelar flujo de trabajo.
Pasos que toma GitHub para cancelar una ejecución de flujo de trabajo
Cuando cancelas una ejecución de flujo de trabajo, tal vez estés ejecutando otro software que utiliza recursos que se relacionan con ésta. Para ayudarte a liberar los recursos relacionados con dicha ejecución de flujo de trabajo, podría ser útil entender los pasos que realiza GitHub para cancelar una ejecución de flujo de trabajo.
- Para cancelar una ejecución de flujo de trabajo, el servidor vuelve a evaluar las condiciones
if
para todos los jobs que se ejecutan actualmente. Si la condición se evalúa comotrue
, el job no se cancelará. Por ejemplo, la condiciónif: always()
se evaluaría como "true" y el job continuaría ejecutándose. Cuando no hay condición, esto es equivalente a una condiciónif: success()
, la cual solo se ejecutará si el paso anterior finalizó con éxito. - Para los jobs que necesitan cancelarse, el servidor envía un mensaje de cancelación a todas las máquinas ejecutoras con jobs que necesitan cancelarse.
- Para los jobs que siguen ejecutándose, el servidor vuelve a evaluar las condiciones
if
para los pasos sin finalizar. Si la condición se evalúa comotrue
, el paso seguirá ejecutándose. - Para los pasos que necesitan cancelarse, la máquina ejecutora manda un
SIGINT/Ctrl-C
al proceso de entrada del paso (node
para una acción de javascript,docker
para una acción de contenedor, ybash/cmd/pwd
cuando se utilizarun
en un paso). Si el proceso no sale en 7500 ms, el ejecutor mandará unSIGTERM/Ctrl-Break
al proceso y luego esperará por 2500 ms para que el proceso salga. Si el proceso aún está ejecutándose, el ejecutor finalizará abruptamente el árbol de proceso. - Después de los 5 minutos del periodo de expiración de plazo de cancelación, el servidor forzará la terminación de todos los jobs y pasos que no hayan finalizado la ejecución o que hayan fallado en completar el proceso de cancelación.