Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk6 min

GitHub Actions: Cómo reintentar jobs de CI tras una interrupción de Spot

GitHub no ofrece un disparador nativo para reintentar jobs muertos por una interrupción Spot. Este es el patrón seguro: detectar, correlacionar y solicitar un rerun acotado.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Sí, puedes automatizar un nuevo intento de un job de GitHub Actions después de una interrupción de una instancia Spot, pero GitHub no documenta una función nativa que detecte esa causa y lo reintente automáticamente. La ruta práctica es combinar una forma fiable de identificar la interrupción con la API REST de GitHub para solicitar otro intento, y limitar los reintentos para que un fallo de pruebas o configuración no genere un ciclo.

Qué puede volver a ejecutar GitHub

GitHub Actions permite volver a ejecutar un workflow completo, todos sus jobs fallidos o un job específico desde la interfaz. Con GitHub CLI puedes volver a ejecutar un workflow con gh run rerun RUN_ID, o solo sus jobs fallidos con gh run rerun RUN_ID --failed. La documentación explica estas opciones en Re-running workflows and jobs.

As an Amazon Associate I earn from qualifying purchases.

La API REST también ofrece operaciones para repetir una ejecución o los jobs fallidos. Si una solicitud de repetición se acepta, la API devuelve HTTP 201. Para el endpoint de jobs fallidos, un personal access token de granularidad fina necesita permiso de escritura de Actions en el repositorio; un token clásico requiere el scope repo. Consulta REST API endpoints for workflow runs para los endpoints y requisitos vigentes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Un rerun no es una ejecución completamente nueva: usa el GITHUB_SHA y GITHUB_REF del evento original, así como los privilegios de la persona que inició el workflow originalmente. Solo está disponible durante los 30 días posteriores a la ejecución inicial y cada workflow run admite como máximo 50 reruns, sumando repeticiones completas y parciales. Estos límites hacen importante registrar cuántos intentos se han solicitado.

Por qué un job de Spot puede detenerse sin un rerun automático

Una instancia Spot es capacidad EC2 sobrante que AWS puede recuperar. Ante una interrupción, AWS puede terminar, detener o hibernar la instancia; terminar es el comportamiento predeterminado. Entre las causas posibles están la necesidad de capacidad, el precio y restricciones de la solicitud. La instancia que ejecuta el runner puede desaparecer mientras el job está en curso, pero eso por sí solo no le dice a GitHub por qué falló el job. AWS detalla los comportamientos en Behavior of Spot Instance interruptions.

AWS suele emitir una notificación de interrupción dos minutos antes de detener o terminar una instancia. La notificación está disponible mediante EventBridge y en los metadatos de la instancia; AWS recomienda consultarla cada cinco segundos. La entrega es best effort, y la hibernación empieza inmediatamente, sin esos dos minutos de aviso. Por tanto, el aviso puede ayudar al runner a cerrar o conservar trabajo, pero no debe ser la única vía de recuperación. Consulta Spot Instance interruption notices.

Diseña la automatización como un controlador, no como un reintento a ciegas

La API proporciona la acción de rerun; no proporciona, según la documentación consultada, un disparador integrado que relacione una reclamación Spot de AWS con el job fallido de GitHub. Esa clasificación y la decisión de repetir son responsabilidad de tu implementación. Un flujo robusto separa tres tareas:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Detectar la interrupción en AWS. Cuando sea posible, captura el evento de interrupción o el aviso del runner y registra de forma durable qué runner y job estaban asociados. No dependas exclusivamente del aviso, porque AWS lo entrega best effort y no lo envía con antelación para hibernación.
  2. Relacionar el evento con una ejecución de GitHub. Conserva identificadores de repositorio, workflow run y job junto al identificador del runner. Si solo recibes un estado fallido de GitHub, no lo trates automáticamente como una interrupción Spot: también puede deberse a pruebas, dependencias, configuración u otros errores.
  3. Solicitar un rerun acotado. Llama al endpoint apropiado de la API para jobs fallidos o para la ejecución completa, según el alcance que necesites. Guarda el resultado de la solicitud y cuenta los intentos para no superar el máximo de 50 por workflow run. Impón un límite operativo menor si se ajusta mejor a tu presupuesto y política de CI.
  4. Evitar que el controlador se reactive a sí mismo. Distingue el fallo inicial de los reruns, marca cada intento ya procesado y detén la cadena ante un nuevo fallo que no tenga evidencia de interrupción. Usa permisos mínimos para el token y protege sus credenciales como cualquier otro secreto de automatización.

La solicitud de rerun ejecuta el código y el contexto de seguridad asociados con el run original: conserva SHA, ref y privilegios del actor original. Revisa ese comportamiento antes de otorgar al controlador capacidad de escritura en Actions; no asumas que un rerun equivale a una ejecución nueva con permisos recalculados para otro actor.

Elige el método según el tipo de incidente

Método Cuándo encaja Qué no resuelve por sí solo
Interfaz de GitHub Incidentes ocasionales en los que una persona puede revisar el run y escoger qué repetir. Requiere intervención y no clasifica la causa automáticamente.
GitHub CLI Operación explícita desde un entorno con acceso a GitHub; permite repetir un run completo o solo sus jobs fallidos. El comando no determina si el fallo fue provocado por Spot.
API REST y controlador propio Flujos repetibles donde tu infraestructura ya puede relacionar el evento de AWS con el job y aplicar límites. Debes implementar la correlación, la clasificación, el control de intentos y la autorización.
Manejo en el runner ante el aviso de AWS Dar oportunidad a un cierre ordenado o a conservar estado antes de una detención o terminación. La notificación no está garantizada y la hibernación empieza sin la ventana de dos minutos.

Si el objetivo es continuar el trabajo perdido, evalúa además qué estado puede recuperarse o reconstruirse después de que desaparezca la instancia. Un rerun repite el trabajo; no restaura por sí mismo procesos ni estado local del runner que ya se perdió.

Prueba cada parte de la cadena

AWS documenta una forma de iniciar una interrupción Spot para probar la respuesta de una aplicación: primero envía una recomendación de rebalanceo y una notificación de interrupción, y después de dos minutos interrumpe la instancia. Si la solicitud está configurada para hibernar, la hibernación empieza inmediatamente. El mecanismo no está soportado en Asia Pacific (Jakarta), Asia Pacific (Osaka), China (Beijing), China (Ningxia) ni Middle East (UAE); comprueba la guía vigente antes de probar en una región concreta. Los pasos están en Initiate a Spot Instance interruption.

  • Verifica por separado que el runner reciba y procese el aviso cuando esté disponible.
  • Confirma qué estado y registros quedan cuando la instancia se detiene, termina o hiberna.
  • Comprueba que la señal de interrupción pueda asociarse al run y job correctos.
  • Ensaya la llamada a la API y valida el resultado esperado, los permisos y el contador de reruns.
  • Provoca también un fallo ordinario de prueba o configuración y confirma que no active la ruta de reintento por Spot.

La prueba de AWS cubre el comportamiento de interrupción de la instancia; no demuestra por sí sola que la correlación con GitHub ni la solicitud de rerun estén correctamente automatizadas.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

La decisión práctica

Para interrupciones infrecuentes, revisar el run y repetir el job manualmente suele ser lo más sencillo. Si las interrupciones justifican automatización, trata el evento Spot como evidencia que debe correlacionarse con el job, usa la API de GitHub solo después de esa verificación y establece límites de reintento, permisos y registros antes de desplegar el controlador. AWS recomienda diseñar las aplicaciones para tolerar fallos; en un runner de CI eso significa manejar el aviso cuando llegue y poder reconstruir o repetir el trabajo cuando no llegue.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.