Ă propos de lâcode scanning avec une build conteneurisĂ©e
Si vous configurez lâcode scanning pour un langage compilĂ© et que vous gĂ©nĂ©rez le code dans un environnement conteneurisĂ©, lâanalyse peut Ă©chouer avec le message dâerreur « Aucun code source nâa Ă©tĂ© vu pendant la gĂ©nĂ©ration ». Cela indique que CodeQL nâa pas pu superviser votre code lors de sa compilation.
Vous devez exĂ©cuter CodeQL dans le conteneur dans lequel vous gĂ©nĂ©rez votre code. Cela sâapplique que vous utilisiez CodeQL CLI ou GitHub Actions. Pour obtenir la CodeQL CLI, consultez Utilisation de l'analyse du code avec votre systĂšme CI existant pour plus dâinformations. Si vous utilisez GitHub Actions, configurez votre workflow pour exĂ©cuter toutes les actions dans le mĂȘme conteneur. Pour plus dâinformations, consultez Exemple de flux de travail.
Remarque
CodeQL CLI nâest actuellement pas compatible avec les distributions Linux non-glibc comme Alpine Linux (basĂ©e sur musl).
Dépendances pour CodeQL code scanning
Vous pouvez avoir des difficultĂ©s Ă exĂ©cuter une code scanning si le conteneur que vous utilisez nâa pas certaines dĂ©pendances (par exemple, Git doit ĂȘtre installĂ© et ajoutĂ© Ă la variable PATH). Si vous rencontrez des problĂšmes de dĂ©pendance, consultez la liste des logiciels gĂ©nĂ©ralement inclus dans les images dâexĂ©cuteur de GitHub. Pour plus dâinformations, consultez les fichiers readme
spécifiques à la version dans ces emplacements :
- 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
Exemple de flux de travail
Remarque
Cet article dĂ©crit les fonctionnalitĂ©s disponibles avec la version de lâaction CodeQL et le pack CodeQL CLI associĂ© inclus dans la mise en production initiale de cette version de GitHub Enterprise Server. Si votre entreprise utilise une version plus rĂ©cente de lâaction CodeQL, consultez la version GitHub Enterprise Cloud de cet article pour obtenir plus dâinformations sur les derniĂšres fonctionnalitĂ©s. Pour plus dâinformations sur lâutilisation de la derniĂšre version, consultez Configuration de lâanalyse de code pour votre appliance.
Cet exemple de workflow utilise GitHub Actions pour exĂ©cuter lâanalyse CodeQL dans un environnement conteneurisĂ©. La valeur de container.image
identifie le conteneur Ă utiliser. Dans cet exemple, lâimage est nommĂ©e codeql-container
et porte lâĂ©tiquette f0f91db
. Pour plus dâinformations, consultez « Workflow syntax for 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