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: 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

  1. En GitHub Enterprise Server, visita la página principal del repositorio.

  2. Debajo del nombre de tu repositorio, da clic en Acciones. Pestaña de acciones en la navegación del repositorio principal

  3. En la barra lateral izquierda, da clic en el flujo de trabajo que quieres ver. Lista de flujos de trabajo en la barra lateral izquierda

  4. Desde la lista de ejecuciones de flujo de trabajo, da clic en el nombre de la ejecución en estado de queued o in progress que quieras cancelar. Nombre de la ejecución de flujo de trabajo

  5. En la esquina superior derecha del flujo de trabajo, da clic en Cancelar flujo de trabajo.

    Botón de cancelar el conjunto de verificaciones

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 jobs que se ejecutan actualmente. Si la condición se evalúa como true, el job no se cancelará. Por ejemplo, la condición if: always() se evaluaría como "true" y el job continuaría ejecutándose. Cuando no hay condición, esto es equivalente a una condición if: success(), la cual solo se ejecutará si el paso anterior finalizó con éxito.
  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 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 como true, el paso seguirá ejecutándose.
  4. 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, y bash/cmd/pwd cuando se utiliza run en un paso). Si el proceso no sale en 7500 ms, el ejecutor mandará un SIGTERM/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.
  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.

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.