Skip to main content

Esta versión de GitHub Enterprise Server se discontinuará el 2026-08-25. No se admiten versiones discontinuas. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para mejorar el rendimiento, mejorar la seguridad y las nuevas características de GitHub Enterprise Server, consulte Información general del proceso de actualización. Para obtener ayuda con la actualización, GitHub Soporte técnico empresarial.

El análisis de examen de código tarda demasiado tiempo

Puede ajustar la code scanning configuración para minimizar el tiempo de análisis.

Nota:

En este artículo se describen las características disponibles con la versión de la acción CodeQL y el paquete asociado CodeQL CLI incluidos en la versión inicial de GitHub Enterprise Server. Si su empresa usa una versión más reciente de la CodeQL acción, consulte la GitHub Enterprise Cloud versión de este artículo para obtener información sobre las características más recientes. Para obtener información sobre el uso de la última versión, consulta Configuración del análisis de código para el dispositivo.

Hay varios enfoques que puede probar para reducir el tiempo de compilación en un análisis de code scanning.

Incrementar la memoria o los núcleos

Puede aumentar la memoria o el espacio en disco disponible en los ejecutores. Si utiliza CodeQL para el análisis de code scanning, puede revisar los recursos de hardware recomendados para CodeQL a fin de asegurarse de que los ejecutores cumplen esos requisitos. Para más información, consulta Recursos de hardware recomendados para ejecutar CodeQL.

Utilizar matrices de compilación para paralelizar el análisis

Para acelerar el análisis de flujos de trabajo que implican varios trabajos, puede modificar el flujo de trabajo para usar una matriz. Para más información, consulta Ejecución de variaciones de trabajos en un flujo de trabajo.

El valor predeterminado Flujo de trabajo de análisis de CodeQL usa una matriz de lenguajes, lo que hace que el análisis de cada idioma se ejecute en paralelo. Sin embargo, si usa CodeQL con la configuración avanzada y ha especificado los idiomas que desea analizar directamente en el paso "Inicializar codeQL", el análisis de cada idioma se producirá secuencialmente. En esta configuración, puede acelerar el análisis modificando el flujo de trabajo de configuración avanzada para usar una matriz. Para obtener un ejemplo, consulte el extracto de flujo de trabajo de Algunos lenguajes no se analizaron con la configuración avanzada de CodeQL.

Reducir la cantidad de código que se está analizando en un solo flujo de trabajo

El tiempo de análisis suele ser proporcional a la cantidad de código que se analiza. Si usa CodeQL la configuración avanzada, puede reducir el tiempo de análisis al reducir la cantidad de código que se va a analizar a la vez. Por ejemplo, al excluir el código de prueba o dividir el análisis en varios flujos de trabajo que analizan solo un subconjunto del código a la vez.

Al usar build-mode: autobuild o build-mode: manual, para lenguajes compilados como Java, Kotlin, Go, C, C++y C#, CodeQL analiza todo el código que se creó durante la ejecución del flujo de trabajo. Para limitar la cantidad de código que se analiza, compile únicamente el código que quiera analizar; para ello, especifique pasos de compilación propios en un bloque run. Puede combinar la especificación de los pasos de compilación propios con el uso de los filtros paths o paths-ignore en los eventos pull_request y push para asegurarse de que el flujo de trabajo solo se ejecuta cuando se cambia código específico. Para más información, consulta Sintaxis del flujo de trabajo para Acciones de GitHub.

Para lenguajes como JavaScript, Python y TypeScript, que CodeQL analiza sin compilar el código fuente o para un lenguaje compilado mediante build-mode: none, puede especificar opciones de configuración adicionales para limitar la cantidad de código que se va a analizar. Para más información, consulta Opciones de configuración de flujo de trabajo para el examen de código.

Si divide su análisis de CodeQL en varios flujos de trabajo, seguimos recomendando que tenga al menos un flujo de trabajo que se ejecute en un schedule y que analice todo el código de su repositorio. Dado que CodeQL analiza los flujos de datos entre componentes, es posible que algunos comportamientos de seguridad complejos solo se detecten en una compilación completa.

Ejecución durante un evento schedule

Es posible que el análisis sea lento durante push o pull_request eventos. Si es así, puede establecer el análisis para que solo se desencadene en el evento schedule. Si utiliza CodeQL para su análisis de code scanning, puede configurarlo mediante un flujo de trabajo de configuración avanzada, pero no en la configuración predeterminada. Para más información, consulta Descripción de Acciones de GitHub.

Comprobación de las consultas o reglas que ejecuta el flujo de trabajo

Otra opción para reducir el tiempo de análisis es ejecutar solo las consultas o reglas que considere críticos en los flujos de trabajo que se ejecutan en las solicitudes de incorporación de cambios. Si usa una herramienta de terceros para code scanning, debe consultar la documentación de la herramienta.

En CodeQL, hay dos conjuntos de consultas principales disponibles para cada idioma. Si ha optimizado la compilación de la CodeQL base de datos y el proceso sigue siendo demasiado largo, puede reducir el número de consultas que se ejecutan. El conjunto de consultas predeterminado se ejecuta automáticamente: proporciona el mejor riesgo posible entre la calidad y la velocidad.

Si usa CodeQL la configuración avanzada, es posible que ejecute consultas adicionales o conjuntos de consultas además de las consultas predeterminadas. Compruebe si el flujo de trabajo define una consulta adicional o un conjunto de consultas para ejecutarse con el elemento queries. Puedes probar el inhabilitar la consulta o suite de consultas adicionales. Para más información, consulta Opciones de configuración de flujo de trabajo para el examen de código.