Skip to main content

Cancelar un flujo de trabajo

Puedes cancelar una ejecución de flujo de trabajo que esté en curso. Cuando cancelas una ejecución de flujo de trabajo, GitHub cancela todsos los jobs y pasos que son parte de ésta.

Nota: Actualmente los ejecutores hospedados en GitHub no se admiten en GitHub Enterprise Server. Puede ver más información sobre la compatibilidad futura planeada en GitHub public roadmap.

Se requiere tener acceso de escritura en el repositorio para llevar a cabo estos pasos.

Cancelar una ejecución de flujo de trabajo

  1. En your GitHub Enterprise Server instance, vaya a la página principal del repositorio. 1. En el nombre del repositorio, haga clic en Acciones. Pestaña Acciones en la navegación del repositorio principal 1. En la barra lateral izquierda, da clic en el flujo de trabajo que quieras ver. Lista de flujos de trabajo en la barra lateral izquierda
  2. Desde la lista de ejecuciones de flujo de trabajo, haga clic en el nombre de la ejecución de queued o in progress que quiera cancelar. Nombre de la ejecución de flujo de trabajo
  3. En la esquina superior derecha del flujo de trabajo, haga clic en Cancelar flujo de trabajo. Botón Cancelar conjunto de comprobaciones

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.

  1. Para cancelar una ejecución de flujo de trabajo, el servidor vuelve a evaluar las condiciones if para todos los trabajos que se ejecutan actualmente. Si la condición se evalúa como true, el trabajo no se cancelará. Por ejemplo, la condición if: always() se evaluaría como true y el trabajo continúa en ejecución. Cuando no hay condición, es equivalente a una condición if: success(), que solo se ejecuta si el paso anterior ha finalizado correctamente.
  2. 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.
  3. Para los trabajos que siguen en ejecución, el servidor vuelve a evaluar las condiciones if para los pasos sin finalizar. Si la condición se evalúa como true, el paso continúa ejecutándose.
  4. Para los pasos que se deben cancelar, la máquina del ejecutor envía SIGINT/Ctrl-C al proceso de entrada del paso (node para la acción javascript, docker para la acción contenedora y bash/cmd/pwd cuando se usa run en un paso). Si el proceso no sale en 7500 ms, el ejecutor enviará SIGTERM/Ctrl-Break al proceso y, después, esperará 2500 ms hasta que el proceso salga. Si el proceso aún está ejecutándose, el ejecutor finalizará abruptamente el árbol de proceso.
  5. 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.