Skip to main content

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

Error: "Sin código fuente durante la compilación"

Cuando CodeQL no encuentra código fuente, es necesario resolver este problema para desbloquear el análisis de code scanning.

Si se produce un error en el flujo de trabajo con Error: "No source code was seen during the build" o The process '/opt/hostedtoolcache/CodeQL/0.0.0-20200630/x64/codeql/codeql' failed with exit code 32, esto indica que CodeQL no ha podido supervisar el código. Hay seis razones posibles para esto:

  1. No hay lenguajes compatibles: es posible que el repositorio no contenga código fuente escrito en lenguajes admitidos por CodeQL. Comprueba la lista de lenguajes admitidos y, si este es el caso, quita el flujo de trabajo de CodeQL. Para obtener más información, vea «Acerca del examen de código con CodeQL».

  2. No hay código analizable en los lenguajes detectados: 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 resolver el problema, puede definir manualmente los lenguajes que quiere analizar si actualiza la lista de lenguajes en la matriz language. Por ejemplo, la siguiente configuración analizará únicamente a Go y a Javascript.

    strategy:
      fail-fast: false
      matrix:
        # Override automatic language detection by changing the list below.
        # Supported options are listed in a comment in the default workflow.
        language: ['go', 'javascript-typescript']
    

    Para obtener más información, consulte el extracto de flujo de trabajo en "Algunos lenguajes no se analizaron con la configuración avanzada de CodeQL".

  3. La compilación de un lenguaje compilado ha fallado: su flujo de trabajo de code scanning está intentando compilar un lenguaje compilado (C, C++, C#, Go, or Java), pero el código no se ha compilado. Cuando un flujo de trabajo especifica build-mode: autobuild para un lenguaje o contiene un paso autobuild, CodeQL hace un mejor esfuerzo para detectar un método de compilación adecuado y compilar el código. Es posible que el proceso autobuild no compile correctamente el código, en función del entorno de compilación específico. También se podría producir un error en la compilación si ha eliminado el paso autobuild y no ha incluido manualmente los pasos de compilación. Para obtener más información sobre cómo definir los pasos de compilación, consulte "Análisis de código de CodeQL para lenguajes compilados".

  4. Componentes en caché no detectados: Tu flujo de trabajo compila un lenguaje compilado (C, C++, C#, Go, or Java) para crear una base de datos de CodeQL, pero algunas partes de tu compilación se almacenan en caché para mejorar el rendimiento (esto muy probablemente ocurra con los sistemas de compilación como Gradle o Bazel). Ya que CodeQL observa la actividad del compilador para entender los flujos de datos en un repositorio, CodeQL requiere que suceda una compilación completa para poder llevar a cabo este análisis.

  5. Compilación fuera de los pasos init y analyze: el flujo de trabajo compila un lenguaje compilado (C, C++, C#, Go, or Java), pero no se produce ninguna compilación entre los pasos init y analyze del flujo de trabajo. CodeQL requiere que tu compilación tome lugar entre estos dos pasos para poder observar la actividad del compilador y llevar a cabo el análisis.

  6. Compilación no detectada por CodeQL: Su código compilado (in C, C++, C#, Go, or Java) se compiló con éxito, pero CodeQL no pudo detectar las invocaciones del compilador. Las causas más comunes son:

    • Ejecutar tu proceso de compilación en un contenedor separado a CodeQL. Para obtener más información, vea «Ejecutarel escaneo de código de CodeQL en un contenedor».
    • Compilar utilizando un sistema de compilación distribuida externo a GitHub Actions, utilizando un proceso de daemon.
    • CodeQL no está consciente del compilador específico que estás utilizando.

Si encuentras otro problema con tu compilador específico o con tu configuración, contacta a el administrador del sitio.

Para obtener más información sobre cómo especificar los pasos de compilación, consulta "Análisis de código de CodeQL para lenguajes compilados".