Nota: CodeQL runner está en desuso. En GitHub Enterprise Server� 3.0 y posterior, puede instalar la versión� 2.6.3 de CodeQL CLI para reemplazar CodeQL runner.
Para más información, vea Ejecutor de CodeQL en desuso. Para obtener información sobre la migración a CodeQL CLI, vea "Migración del ejecutor de CodeQL a la CLI de CodeQL".
El comando init
tarda demasiado
Antes de que el CodeQL runner pueda compilar y analizar código, necesita tener acceso al paquete de CodeQL, el cual contiene la CLI de CodeQL y las bibliotecas de CodeQL.
Al usar CodeQL runner por primera vez en la máquina, el comando init
descarga el paquete CodeQL. Esta descarga puede demorar algunos minutos.
El paquete de CodeQL se guarda en el caché entre las ejecuciones, así que si utilizas el CodeQL runner nuevamente en la misma máquina, no descargará el paquete de CodeQL nuevamente.
Para evitar esta descarga automática, puede descargar manualmente el paquete CodeQL en la máquina y especificar la ruta mediante la marca --codeql-path
del comando init
.
No se encontró código durante la compilación
Si se produce un error No source code was seen during the build
en el comando analyze
para CodeQL runner, esto indica que CodeQL no ha podido supervisar el código. Hay muchas razones que podrían explicar esta error.
-
La detección automática del lenguaje identificó un lenguaje compatible, pero no hay código analizable en dicho lenguaje dentro del repositorio. Un ejemplo típico es cuando nuestro servicio de detección de lenguaje encuentra un archivo asociado a un lenguaje de programación específico, como un archivo
.h
o.gyp
, pero en el repositorio no existe el código ejecutable correspondiente. Para solucionar el problema, puede definir manualmente los lenguajes que quiere analizar mediante la marca--languages
del comandoinit
. Para más información, vea "Configuración de CodeQL runner en el sistema de CI". -
Va a analizar un lenguaje compilado sin usar el comando
autobuild
y ejecuta los pasos de compilación después del pasoinit
. Para que funcione la compilación, debes configurar el ambiente para que el CodeQL runner pueda monitorear el proceso de compilación. El comandoinit
genera instrucciones sobre cómo exportar las variables de entorno necesarias, por lo que puedes copiar y ejecutar el script después de ejecutar el comandoinit
.- En macOS y Linux:
$ . codeql-runner/codeql-env.sh
- En Windows, mediante el shell de comandos (
cmd
) o un archivo por lotes (.bat
):> call codeql-runner\codeql-env.bat
- En Windows, utilizando PowerShell:
> cat codeql-runner\codeql-env.sh | Invoke-Expression
Las variables de entorno también se almacenan en el archivo
codeql-runner/codeql-env.json
. Este archivo contiene solo un objeto de JSON que mapea las claves de variable de ambiente a valores. Si no puede ejecutar el script que ha generado el comandoinit
, en su lugar puede usar los datos en formato JSON.Nota: Si ha usado la marca
--temp-dir
del comandoinit
a fin de especificar un directorio personalizado para los archivos temporales, la ruta a los archivoscodeql-env
podría ser diferente. - En macOS y Linux:
-
Va a analizar un lenguaje compilado en macOS sin usar el comando
autobuild
y ejecuta los pasos de compilación después del pasoinit
. Si está habilitada la SIP (Protección Integral del Sistema, por sus siglas en inglés), que es lo predeterminado en las versiones más recientes de OSX, el análisis podría fallar. Para corregirlo, use la variable de entorno$CODEQL_RUNNER
como prefijo del comando de compilación. Por ejemplo, si el comando de compilación escmd arg1 arg2
, debe ejecutar$CODEQL_RUNNER cmd arg1 arg2
. -
El código se compila en un contenedor o en una máquina independiente. Si utilizas una compilación que ya esté en un contenedor o si terciarizas la compilación a otra máquina, asegúrate de ejecutar el CodeQL runner en el contenedor o en la máquina en donde toma lugar tu tarea de compilación. Para más información, vea "Ejecución del análisis de código de CodeQL en un contenedor".