Skip to main content

ExĂ©cution de l’analyse du code CodeQL dans un conteneur

Vous pouvez exĂ©cuter code scanning dans un conteneur en veillant Ă  ce que tous les processus s’exĂ©cutent dans le mĂȘme conteneur.

Qui peut utiliser cette fonctionnalité ?

Code scanning est disponible pour les types de rĂ©fĂ©rentiels suivants :

À 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 :

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