Skip to main content

Enterprise Server 3.20 actualmente está disponible como versión candidata para lanzamiento.

Referencia de cancelación de flujo de trabajo

Busca información sobre los pasos que realiza GitHub para cancelar una ejecución de flujo de trabajo.

Cuando cancelas una ejecución de flujo de trabajo, es probable que ejecutes otro software que utiliza recursos relacionados con ella. 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 verdadero y el trabajo sigue ejecutándose. 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 las tareas que necesitan cancelarse, el servidor envía un mensaje de cancelación a todas las máquinas ejecutoras involucradas.
  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. Puedes usar la expresión cancelled para aplicar una comprobación de estado de cancelled(). Para más información, consulta Evaluación de expresiones en flujos de trabajo y acciones.
  4. Para los pasos que necesitan ser cancelados, la máquina runner envía SIGINT/Ctrl-C al proceso de entrada del paso (node para acciones de JavaScript, docker para acciones de contenedor 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 sistema mata el árbol de procesos.
  5. Después del período de tiempo de espera de cancelación de cinco minutos, el servidor finalizará forzosamente todos los trabajos y pasos que todavía estén en ejecución.