CodeQL 分析ワークフローとコンパイル型言語について
Code scanning は、1 つ以上の CodeQL データベースに対してクエリを実行することにより機能します。 各データベースには、リポジトリにあるコードが 1 つの言語で表わされたものが含まれています。 C/C++、C#、Go、Java、Kotlin、Rust (パブリック プレビュー)、、Swift のようなコンパイル言語では、こうしたデータベースの作成プロセスにコードのビルドとデータの抽出が必要になることがよくあります。
code scanning を有効にすると、既定のセットアップおよび拡張されたセットアップの両方で、利用できる最も簡単な方法で分析用の CodeQL データベースが作成されます。 Java の場合、CodeQL データベースは、ビルド (none ビルド モード) を必要とせずにコードベースから直接作成されます。 他のコンパイル型言語の場合、autobuild ビルド モードを使用して CodeQL によりコードベースがビルドされます。 または、manual ビルド モードを使用して明示的なビルド コマンドを指定し、これらのカスタム コマンドによってビルドされたファイルのみを分析することもできます。
CodeQL ビルド モデル
CodeQL アクションでは、コンパイル型言語に対して次の 3 つの異なるビルド モードがサポートされています。
-
`none` - CodeQL データベースは、コードベースをビルドすることなくコードベースから直接作成されます (すべてのインタプリタ型言語でサポートされ、 Java でもサポートされています)。 -
`autobuild` - CodeQL は、最も可能性の高いビルド方法を検出し、これを使用してコードベースをビルドし、分析用のデータベースを作成します (C/C++、C#、Go、Java、Kotlin、Swift でサポートされています)。 -
`manual` - ワークフロー内のコードベースに使用するビルド手順を定義します (C/C++、C#、Go、Java、Kotlin、Swift でサポートされます)。
言語固有の autobuild 動作、ランナーの要件、および手動ビルドのガイダンスについては、 コンパイル済み言語の CodeQL ビルド オプションと手順 を参照してください。