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. For information on migrating to CodeQL CLI, see "Migrating from the CodeQL runner to 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 コードスキャンを実行する」を参照してく� さい。