Skip to main content

Ошибка: "Во время сборки не было видно исходного кода"

Если CodeQL не удаётся найти исходный код, нужно решить эту проблему, чтобы разблокировать code scanning анализ.

Если ваш рабочий процесс сбой с Error: "No source code was seen during the build" или The process '/opt/hostedtoolcache/CodeQL/0.0.0-20200630/x64/codeql/codeql' failed with exit code 32, это значит, что CodeQL не удалось контролировать ваш код. Существует шесть возможных причин для этого:

  1. Нет поддерживаемых языков: Репозиторий может не содержать исходный код, написанный на языках, поддерживаемых CodeQL. Проверьте список поддерживаемых языков и, если это так, удалите CodeQL рабочий процесс. Дополнительные сведения см. в разделе Сканирование кода с помощью CodeQL.

  2. Нет анализируемого кода обнаруженных языков: автоматическое обнаружение языка определило поддерживаемый язык, но в репозитории нет анализимого кода этого языка. Типичный пример — служба определения языка находит файл, связанный с определенным языком, например файл .h или .gyp, но в репозитории отсутствует соответствующий исполняемый код. Чтобы решить эту проблему, можно вручную определить языки, которые требуется проанализировать, обновив список языков в матрице language. Например, следующая конфигурация проанализирует только Go и 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']
    

    Дополнительные сведения см. в извлечении рабочего процесса в Некоторые языки не были проанализированы с помощью расширенной настройки CodeQL.

  3. Компиляция скомпилированного языка не удалась: Ваш code scanning рабочий процесс пытается скомпилировать скомпилированный язык (C, C++, C#, Go или Java), но код не был скомпилирован. Когда рабочий процесс задаёт build-mode: autobuild язык или содержит шаг autobuild , CodeQL старайтесь найти подходящий метод сборки и построить код. Процесс autobuild может не завершиться сборкой кода в зависимости от конкретной среды сборки. Компиляция также может завершиться ошибкой, если вы удалили этот шаг autobuild и не включили шаги сборки вручную. Дополнительные сведения об определении шагов сборки см. в разделе CodeQL code scanning for compiled languages.

  4. Кэшированные компоненты не обнаружены: Ваш рабочий процесс строит скомпилированный язык (C, C++, C#, Go или Java) для создания CodeQL базы данных для анализа, но части сборки кэшируются для повышения производительности (чаще всего это происходит с такими системами, как Gradle или Bazel). Поскольку CodeQL наблюдает активность компилятора для понимания потоков данных в репозитории, CodeQL для анализа требуется полное сборка.

  5. Компиляция вне init и analyze этапов. Рабочий процесс создает скомпилированный язык (C,C++, C#, Go или Java), но компиляция не выполняется между init``analyze этапами рабочего процесса. CodeQL Требует, чтобы сборка происходила между этими двумя этапами, чтобы наблюдать активность компилятора и проводить анализ.

  6. Компиляция, не обнаруженная : CodeQL Ваш скомпилированный код (на C, C++, C#, Go или Java) был успешно скомпилирован, но CodeQL не смог обнаружить вызовы компилятора. Ниже перечислены наиболее распространенные из них.

    • Запуск процесса сборки в отдельном контейнере для CodeQL. Дополнительные сведения см. в разделе Выполнение проверки кода CodeQL в контейнере.
    • Создание с помощью распределенной системы сборки, внешней для функции GitHub Actions, использующей процесс управляющей программы.
    • CodeQL не знает, какой именно компилятор вы используете.

Если вы столкнётесь с другой проблемой с вашим конкретным компилятором или конфигурацией, свяжитесь ваш администратор сайтас .

Дополнительные сведения об указании шагов сборки см. в разделе CodeQL code scanning for compiled languages.