コンテナ化されたビルドで code scanning を使用することについて
コンパイル言語用に code scanning を構成し、コンテナー化された環境でコードをビルドしようとすると、解析が失敗し、"No source code was seen during the build." というエラー メッセージが表示される場合があります。 これは、コードがコンパイルされているので CodeQL がコードをモニターできなかったことを示しています。
CodeQLは、コードをビルドするコンテナ内で実行しなければなりません。 これは、CodeQL CLIまたは GitHub Actions のいずれを使っていても当てはまります。 CodeQL CLI の場合、詳しくは、「CI システムに CodeQL CLI をインストールする」をご覧ください。 GitHub Actions を使用している場合は、同じコンテナですべてのアクションを実行するようワークフローを設定します。 詳しくは、「ワークフローの例」をご覧ください。
メモ: CodeQL CLI は現在、glibc 以外の Linux ディストリビューション ((musl ベースの) Alpine Linux など) との互換性がありません。
依存関係
使用しているコンテナで特定の依存関係がない場合 (たとえば、Git は PATH 変数にインストールされ、追加されている必要がある)、code scanning を実行する上で困難が生じる場合があります。 依存関係の問題が生じた場合は、GitHub のランナー イメージに通常含まれているソフトウェアのリストを確認してください。 詳しくは、次の場所にある特定のバージョンの readme
ファイルをご覧ください。
- Linux: https://github.com/actions/runner-images/tree/main/images/linux
- macOS: https://github.com/actions/runner-images/tree/main/images/macos
- Windows: https://github.com/actions/runner-images/tree/main/images/win
ワークフローの例
メモ: この記事では、このバージョンの GitHub Enterprise Server の初期リリースに含まれる CodeQL アクションのバージョンおよび関連する CodeQL CLI バンドルで使用できる機能について説明します。 企業で CodeQL アクションのより新しいバージョンを使っている場合、最新機能について詳しくは、GitHub Enterprise Cloud に関する記事をご覧ください。最新バージョンの使用については、「アプライアンスのコード スキャンの構成」をご覧ください。
このサンプルワークフローでは、GitHub Actions を使用して、コンテナ化された環境において CodeQL 解析を実行します。 使用するコンテナーを識別する container.image
の値。 この例では、イメージは、f0f91db
のタグを持つ、codeql-container
という名前です。 詳細については、GitHub Actions のワークフロー構文に関するページを参照してください。
name: "CodeQL"
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '15 5 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
strategy:
fail-fast: false
matrix:
language: [java]
# Specify the container in which actions will run
container:
image: codeql-container:f0f91db
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
- name: Build
run: |
./configure
make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2