コンテナー化されたビルドを使用した code scanning について
コンパイル済み言語の code scanning を構成していて、コンテナー化された環境でコードをビルドしている場合、"ビルド中にソース コードが表示されませんでした" というエラー メッセージで分析が失敗することがあります。 これは、コンパイル時 CodeQL コードを監視できなかったことを示します。
コードをビルドするコンテナー内で CodeQL を実行する必要があります。 これは、 CodeQL CLI と GitHub Actionsのどちらを使用しているかに関係なく適用されます。 CodeQL CLIについては、既存の CI システムでコード スキャンを使用する を参照してください。 GitHub Actionsを使用している場合は、同じコンテナー内のすべてのアクションを実行するようにワークフローを構成します。 詳細については、「ワークフローの例」を参照してください。
メモ
CodeQL CLI は現在、glibc 以外の Linux ディストリビューション ((musl ベースの) Alpine Linux など) との互換性がありません。
の依存関係 CodeQLcode scanning
使用しているコンテナーに特定の依存関係がない場合(たとえば、Git をインストールして PATH 変数に追加する必要がある)、 code scanning の実行が困難な場合があります。 依存関係の問題が発生した場合は、 GitHubのランナー イメージに通常含まれるソフトウェアの一覧を確認します。 詳しくは、次の場所にある特定のバージョンの readme ファイルをご覧ください。
- Linux: https://github.com/actions/runner-images/tree/main/images/ubuntu
- Macos: https://github.com/actions/runner-images/tree/main/images/macos
- ウィンドウズ: https://github.com/actions/runner-images/tree/main/images/windows
ワークフローの例
このサンプル ワークフローでは、 GitHub Actions を使用して、コンテナー化された環境で CodeQL 分析を実行します。 使用するコンテナーを識別する container.image の値。 この例では、イメージは、codeql-container のタグを持つ、f0f91db という名前です。 詳細については、「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-kotlin]
# Specify the container in which actions will run
container:
image: codeql-container:f0f91db
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
- name: Build
run: |
./configure
make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4