7.9 KiB
title, shortTitle, intro, product, redirect_from, versions, type, topics, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
| title | shortTitle | intro | product | redirect_from | versions | type | topics | ms.openlocfilehash | ms.sourcegitcommit | ms.translationtype | ms.contentlocale | ms.lasthandoff | ms.locfileid | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Устранение неполадок со средством выполнения CodeQL в системе CI | Troubleshoot CodeQL runner | Если у вас возникли проблемы с {% data variables.code-scanning.codeql_runner %}, воспользуйтесь этими советами. | {% data reusables.gated-features.code-scanning %} |
|
|
how_to |
|
b241e0c01b463a46a1eb3b47b68ba0283a94609d | b617c4a7a1 |
MT | ru-RU | 11/11/2022 | 148161165 |
{% data reusables.code-scanning.deprecation-codeql-runner %} {% data reusables.code-scanning.beta %} {% data reusables.code-scanning.not-available %}
Выполнение команды init занимает слишком много времени
Прежде чем {% data variables.code-scanning.codeql_runner %} сможет создавать и анализировать код, ему требуется доступ к пакету {% data variables.product.prodname_codeql %}, который содержит интерфейс командной строки {% data variables.product.prodname_codeql %} и библиотеки {% data variables.product.prodname_codeql %}.
При первом использовании {% data variables.code-scanning.codeql_runner %} на компьютере init команда загружает пакет {% data variables.product.prodname_codeql %} на компьютер. Загрузка может занять несколько минут.
Пакет {% data variables.product.prodname_codeql %} кэшируется между запусками, поэтому при повторном использовании {% data variables.code-scanning.codeql_runner %} на том же компьютере пакет {% data variables.product.prodname_codeql %} больше не скачается.
Чтобы избежать автоматического скачивания, можно вручную скачать пакет {% data variables.product.prodname_codeql %} на компьютер и указать путь с помощью флага --codeql-path команды init.
Во время сборки не найден код
analyze Если команда для {% data variables.code-scanning.codeql_runner %} завершается ошибкой No source code was seen during the build, это означает, что {% data variables.product.prodname_codeql %} не удалось отслеживать код. У этого сбоя может быть несколько причин.
-
Автоматическое определение языка идентифицировало поддерживаемый язык, но в репозитории нет анализируемого кода на этом языке. Типичный пример — служба определения языка находит файл, связанный с определенным языком программирования, например файл
.hили.gyp, но в репозитории отсутствует соответствующий исполняемый код. Чтобы решить эту проблему, можно вручную определить языки, которые требуется проанализировать, с помощью флага--languagesкомандыinit. Дополнительные сведения см. в разделе Настройка {% data variables.code-scanning.codeql_runner %} в системе CI. -
Вы анализируете скомпилированный язык без использования команды
autobuildи выполняете шаги сборки самостоятельно после шагаinit. Чтобы сборка работала, необходимо настроить среду таким образом, чтобы {% data variables.code-scanning.codeql_runner %} могли отслеживать процесс сборки. Командаinitсоздает инструкции по экспорту необходимых переменных среды, чтобы можно было скопировать и запустить скрипт после выполнения командыinit.- В macOS и Linux:
$ . codeql-runner/codeql-env.sh - В Windows с помощью командной оболочки (
cmd) или пакетного файла (.bat):> call codeql-runner\codeql-env.bat - В Windows с использованием PowerShell:
> cat codeql-runner\codeql-env.sh | Invoke-Expression
Переменные среды также хранятся в файле
codeql-runner/codeql-env.json. Этот файл содержит один объект JSON, который сопоставляет ключи переменных среды со значениями. Если вы не можете запустить скрипт, созданный командойinit, вместо этого можно использовать данные в формате JSON.{% note %}
Примечание. Если вы использовали флаг
--temp-dirкомандыinitдля указания пользовательского каталога для временных файлов, путь к файламcodeql-envможет отличаться.{% endnote %}
- В macOS и Linux:
-
Вы анализируете скомпилированный язык на macOS без использования команды
autobuildи выполняете шаги сборки самостоятельно после шагаinit. Если включена функция SIP (System Integrity Protection), а она включена по умолчанию в последних версиях OSX, анализ может завершиться ошибкой. Чтобы устранить эту проблему, перед командой сборки укажите переменную среды$CODEQL_RUNNER. Например, если вы используете команду сборкиcmd arg1 arg2, выполните команду$CODEQL_RUNNER cmd arg1 arg2. -
Код собирается в контейнере или на отдельном компьютере. Если вы используете контейнерную сборку или передаете сборку на другой компьютер, обязательно запустите {% data variables.code-scanning.codeql_runner %} в контейнере или на компьютере, где выполняется задача сборки. Дополнительные сведения см. в разделе Выполнение сканирования кода CodeQL в контейнере.