Skip to main content

Flujos de trabajo de solución de problemas

Puede utilizar las herramientas de GitHub Actions para depurar los flujos de trabajo.

Nota:

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

Sugerencias iniciales para la solución de problemas

Hay varias maneras de solucionar errores en las ejecuciones de flujo de trabajo.

Uso de registros de ejecución de flujo de trabajo

Cada ejecución de flujo de trabajo genera bitácoras de actividad que puedes ver, buscar y descargar. Para más información, consulta Uso de registros de ejecución de flujo de trabajo.

Habilitación del registro de depuración

Si los registros de flujo de trabajo no proporcionan suficiente detalle para diagnosticar por qué un flujo de trabajo o paso no funciona como se espera, puedes habilitar más registros de depuración. Para más información, consulta Habilitación del registro de depuración.

Si el flujo de trabajo usa herramientas o acciones específicas, habilitar sus opciones de registro detallado o depuración puede ayudar a generar resultados más detallados para solucionar problemas. Por ejemplo, puedes usar npm install --verbose para npm o GIT_TRACE=1 GIT_CURL_VERBOSE=1 git ... para Git.

Solucionar problemas de desencadenadores de flujo de trabajo

Puedes revisar el campo on: del flujo de trabajo para comprender lo que se espera que desencadene el mismo. Para más información, consulta Activar un flujo de trabajo.

Para ver la lista completa de eventos disponibles, consulta Eventos que desencadenan flujos de trabajo.

Desencadenar condiciones de evento

Algunos eventos de desencadenamiento solo se ejecutan desde la rama predeterminada (es decir, issues, schedule). Las versiones del archivo de flujo de trabajo que existen fuera de la rama predeterminada no se desencadenarán en estos eventos.

Los flujos de trabajo no se ejecutarán en la actividad pull_request si la solicitud de incorporación de cambios tiene un conflicto de combinación.

Los flujos de trabajo que, de lo contrario, se desencadenarían en la actividad push o pull_request se omitirán si el mensaje de confirmación contiene una anotación de omisión. Para más información, consulta Saltarse las ejecuciones de código.

Flujos de trabajo programados que se ejecutan en momentos inesperados

Los eventos programados se pueden retrasar durante periodos de cargas altas de ejecuciones de flujo de trabajo de GitHub Actions.

Los tiempos de carga alta incluyen el inicio de cada hora. Si la carga es lo suficientemente alta, es posible que se quiten algunos trabajos en cola. Para aminorar la posibilidad de los retrasos, programa tu flujo de trabajo para que se ejecute en una porción diferente de la hora. Para más información, consulta Eventos que desencadenan flujos de trabajo.

Límites de filtrado y diferencias

Los eventos específicos permiten filtrar por rama, etiqueta o rutas de acceso que puedes personalizar. La creación de la ejecución del flujo de trabajo se omitirá si se aplican las condiciones de filtro para filtrar el flujo de trabajo.

Puedes usar caracteres especiales con filtros. Para más información, consulta Sintaxis del flujo de trabajo para GitHub Actions.

Para el filtrado de rutas de acceso, la evaluación de diferencias se limita a los primeros 300 archivos. Si hay archivos que cambiaron y no se correspondieron en los primeros 300 archivos que devuelve el filtro, el flujo de trabajo no se ejecutará. Para más información, consulta Sintaxis del flujo de trabajo para GitHub Actions.

Solución de problemas de ejecución de flujo de trabajo

La ejecución del flujo de trabajo implica cualquier problema detectado después de que se haya desencadenado el flujo de trabajo y se haya creado una ejecución de flujo de trabajo.

Cancelar flujos de trabajo

Si la cancelación estándar mediante la interfaz de usuario de UI o API no procesa según lo previsto, puede haber una instrucción condicional configurada para los trabajos de flujo de trabajo en ejecución que hacen que no se cancele.

En estos casos, puedes sacar provecho de la API para forzar la cancelación de la ejecución. Para más información, consulta Puntos de conexión de API de REST para ejecuciones de flujo de trabajo.

Una causa común puede ser el uso de la función de comprobación de estado de always() que devuelve true, incluso en caso de cancelación. Una alternativa es usar el inverso de la función cancelled(), ${{ !cancelled() }}.

Para más información, consulta Utilizar condiciones para controlar la ejecución de jobs y Cancelar una ejecución de flujo de trabajo.

Solucionar problemas de ejecutores

Definir etiquetas de ejecutor

Los ejecutores hospedados en GitHub sacan provecho de etiquetas preestablecidas mantenidas mediante el repositorio de actions/runner-images.

Se recomienda usar nombres de etiqueta únicos para ejecutores más grandes y autohospedados. Si una etiqueta coincide con cualquiera de las etiquetas preestablecidas existentes, puede haber problemas de asignación de ejecutor en los que no hay ninguna garantía sobre la opción del ejecutor coincidente en la que se ejecutará el trabajo.

Ejecutores autohospedados

Si utilizas ejecutores auto-hospedados, puedes ver su actividad y diagnosticar problemas comunes.

Para más información, consulta Supervisión y solución de problemas de ejecutores autohospedados.