Note: The CodeQLランナー is being deprecated. On GitHub Enterprise Server 3.0 and greater, you can install CodeQL CLI version 2.6.3 to replace CodeQLランナー.
For more information, see the CodeQL runner deprecation. CodeQL CLIへの移行に関する情� �については「CodeQLランナーからCodeQL CLIへの移行」を参照してく� さい。
init コマンドに時間がかかりすぎる
CodeQLランナー は、コードのビルドと解析を行う前に、CodeQL CLI と CodeQL ライブラリを含んでいる CodeQL バンドルへのアクセス権が必要です。
お使いのマシンで CodeQLランナー を初めて使用する際、init コマンドは CodeQL バンドルをマシンにダウンロードします。 ダウンロードには数分かかります。
CodeQL バンドルは次の実行の前にキャッシュされるので、CodeQLランナー を同じマシンで再度使用する際は、CodeQL バンドルを再ダウンロードすることはありません。
この自動ダウンロードを回避するには、CodeQL バンドルをマシンに手動でダウンロードし、init コマンドの --codeql-path フラグでパスを指定します。
ビルド中にコードが見つからない
CodeQLランナー の analyze コマンドで、No source code was seen during the build というエラーが出て失敗する� �合、CodeQL がコードをモニターできなかったことを示しています。 このようなエラーが発生する理由として、次のようなものがあります。
-
自動言語検出により、サポートされている言語が特定されたが、リポジトリにその言語の分析可能なコードがない。 一般的な例としては、言語検出サービスが
.hや.gypファイルなどの特定のプログラミング言語に関連付けられたファイルを見つけたが、対応する実行可能コードがリポジトリに存在しない� �合です。 この問題を解決するには、initコマンドの--languagesフラグを使用して、解析する言語を手動で定義できます。 詳しい情� �については、「CodeQLランナー を CI システ� で設定する」を参照してく� さい。 -
コンパイル型言語を
autobuildコマンドを使用せずに解析し、initステップの後に自分でビルドステップを実行している。 ビルドが機能するには、CodeQLランナー がビルドのプロセスをモニターできるように環境をセットアップする必要があります。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 フォーマットのデータを代わりに使用できます。注釈:�
initコマンドの--temp-dirフラグで一時ファイルのカスタ� ディレクトリを指定している� �合、codeql-envファイルへのパスが異なることがあります。 - macOS および Linux:
-
macOS でコンパイル型言語を
autobuildコマンドを使用せずに解析し、initステップの後に自分でビルドステップを実行している。 SIP (システ� 整合性保護) が有効になっている� �合、解析は失敗することがあります。OSX の最近のバージョンでは、SIP はデフォルトで有効になっています。 この問題を解決するには、ビルドコマンドの前に$CODEQL_RUNNERの環境変数を付けてく� さい。 たとえばビルドコマンドがcmd arg1 arg2の� �合、$CODEQL_RUNNER cmd arg1 arg2を実行します。 -
コードがコンテナまたは別のマシンでビルドされている。 コンテナ化されたビルドを使用しているか、ビルドを別のマシンに委託している� �合は、必ず CodeQLランナー をコンテナまたはビルドタスクを実行するマシンで実行してく� さい。 詳しい情� �については、「コンテナで CodeQL コードスキャンを実行する」を参照してく� さい。