Informationen zu code scanning mit einem containerisierten Build
Wenn du die code scanning für eine kompilierte Sprache konfigurierst und den Code in einer Containerumgebung erstellst, schlägt die Analyse möglicherweise mit der Fehlermeldung „Während des Builds wurde kein Quellcode angezeigt“ fehl. Dies weist darauf hin, dass CodeQL den Code nicht überwachen konnten, da er kompiliert wurde.
Du musst CodeQL innerhalb des Containers ausführen, in dem du deinem Code erstellst. Dies gilt unabhängig davon, ob du die CodeQL CLI oder GitHub Actions verwendest. Weitere Informationen zur CodeQL CLI findest du unter Verwenden der Codeüberprüfung mit deinem vorhandenen CI-System. Wenn du GitHub Actions verwenden, konfiguriere deinen Workflow so, dass alle Aktionen im selben Container ausgeführt werden. Weitere Informationen findest du im Beispielworkflow.
Note
Die CodeQL CLI ist derzeit nicht mit Nicht-Glibc-Linux-Distributionen wie (musl-basiertem) Alpine Linux kompatibel.
Abhängigkeiten für CodeQL code scanning
Möglicherweise hast du Schwierigkeiten, code scanning auszuführen, wenn deinem verwendeten Container bestimmte Abhängigkeiten fehlen (z. B. muss Git installiert und zur PATH-Variable hinzugefügt werden). Bei Abhängigkeitsproblemen überprüfe die Liste der Software, die normalerweise in den Runner-Images von GitHub enthalten ist. Weitere Informationen findest du in den versionsspezifischen readme
-Dateien an diesen Speicherorten:
- Linux: https://github.com/actions/runner-images/tree/main/images/ubuntu
- macOS: https://github.com/actions/runner-images/tree/main/images/macos
- Windows: https://github.com/actions/runner-images/tree/main/images/windows
Beispielworkflow
Note
In diesem Artikel werden die Features beschrieben, die in der Version der CodeQL-Aktion und dem zugehörigen CodeQL CLI-Bundle im ursprünglichen Release dieser Version von GitHub Enterprise Server enthalten sind. Wenn dein Unternehmen eine neuere Version der CodeQL-Aktion verwendet, findest du Informationen zu den neuesten Features in der GitHub Enterprise Cloud-Version dieses Artikels. Informationen zur Verwendung der aktuellen Version finden Sie unter Konfigurieren der Codeüberprüfung für Ihre Anwendung.
Dieser Beispielworkflow verwendet GitHub Actions, um CodeQL-Analysen in einer containerisierten Umgebung durchzuführen. Der Wert von container.image
gibt den zu verwendenden Container an. In diesem Beispiel wird das Image codeql-container
mit einem Tag von f0f91db
genannt. Weitere Informationen finden Sie unter Workflowsyntax für 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@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- name: Build
run: |
./configure
make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3