关于使用容器化构建的 代� �扫描
如果为编译语言设置 代� �扫描,并且在容器化环境中构建代� �,则分析可能会失败,并返回错误消息“No source code was seen during the build(在构建过程中没有看到源代� �)”。 这表明 CodeQL 在代� �编译过程中� 法监视代� �。
您必须在构建代� �的容器中运行 CodeQL。 This applies whether you are using the CodeQL CLI, the CodeQL runner, or GitHub Actions. For the CodeQL CLI or the CodeQL runner, see "Installing CodeQL CLI in your CI system" or "Running CodeQL runner in your CI system" for more information. 如果您使用 GitHub Actions,请配置工作流程以在同一容器中运行所有操作。 更多信息请参阅“示例工作流程”。
依赖项
如果您使用的容器缺少某些依赖项(例如,Git 必须安装并添� 到 PATH 变量),您可能难以运行 代� �扫描。 如果遇到依赖项问题,请查看通常包含在 GitHub 虚拟环境中的软件列表。 有关更多信息,请在以下位置查看特定于版本的 readme
文件:
- Linux: https://github.com/actions/virtual-environments/tree/main/images/linux
- macOS: https://github.com/actions/virtual-environments/tree/main/images/macos
- Windows: https://github.com/actions/virtual-environments/tree/main/images/win
示例工作流程
注意:本文介绍了此版 GitHub Enterprise Server 的初始版本中包含的 CodeQL 操作版本和相关 CodeQL CLI 捆绑包中可用的功能。 If your enterprise uses a more recent version of the CodeQL action, see the GitHub Enterprise Cloud article for information on the latest features. For information on using the latest version, see "Configuring code scanning for your appliance."
此示例工作流程在容器化环境中使用 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
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@v2
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
- name: Build
run: |
./configure
make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1