Si votre workflow échoue avec l'erreur Error: "No source code was seen during the build"
ou The process '/opt/hostedtoolcache/CodeQL/0.0.0-20200630/x64/codeql/codeql' failed with exit code 32
, cela indique que CodeQL n'est pas parvenu à surveiller votre code. Il existe six raisons possibles à cela :
-
Aucun langage pris en charge : le référentiel peut ne pas contenir de code source écrit dans des langages pris en charge par CodeQL. Vérifiez la liste des langages pris en charge et, si c'est le cas, supprimez le workflow CodeQL. Pour plus d’informations, consultez « À propos de l’analyse du code avec CodeQL ».
-
Aucun code analysable des langages détectés : la détection automatique du langage a identifié un langage pris en charge, mais il n’existe aucun code analysable de ce langage dans le référentiel. Par exemple, notre service de détection de langage trouve un fichier associé à un langage de programmation particulier, tel qu'un fichier
.h
ou.gyp
, mais aucun code exécutable correspondant n'est présent dans le dépôt. Pour résoudre le problème, vous pouvez définir manuellement les langages que vous souhaitez analyser en mettant à jour la liste des langages dans la matricelanguage
. Par exemple, la configuration suivante analyse uniquement Go et JavaScript.strategy: fail-fast: false matrix: # Override automatic language detection by changing the list below. # Supported options are listed in a comment in the default workflow. language: ['go', 'javascript-typescript']
Pour plus d’informations, consultez l’extrait de flux de travail disponible dans Certains langages n'ont pas été analysés avec l’installation avancée de CodeQL.
-
Échec de compilation d’un langage compilé : votre workflow d’code scanning tente de compiler un langage compilé (C, C++, C#, Go ou Java), mais le code n’a pas été compilé. Lorsqu’un workflow spécifie
build-mode: autobuild
pour un langage ou contient une étapeautobuild
, CodeQL fait le meilleur effort pour détecter une méthode de génération appropriée et générer votre code. Le processusautobuild
peut ne pas réussir à générer votre code, en fonction de votre environnement de génération spécifique. La compilation peut également échouer si vous avez supprimé l'étapeautobuild
et n'avez pas inclus les étapes de génération manuellement. Pour plus d’informations sur la définition des étapes de build, consultez Analyse du code CodeQL pour les langages compilés. -
Pas de détection des composants mis en cache : votre workflow génère un langage compilé (C, C++, C#, Go ou Java) pour créer une base de données d’analyse CodeQL, mais des parties de votre génération sont mises en cache pour améliorer les performances (généralement avec des systèmes de génération comme Gradle ou Bazel). Étant donné que CodeQL observe l'activité du compilateur pour comprendre les flux de données dans un dépôt, CodeQL nécessite qu'une génération complète ait lieu pour effectuer une analyse.
-
Compilation en dehors des étapes
init
etanalyze
: votre workflow génère un langage compilé (C, C++, C#, Go ou Java), mais la compilation ne se produit pas entre les étapesinit
etanalyze
du workflow. CodeQL nécessite que votre génération se produise entre ces deux étapes afin d'observer l'activité du compilateur et d'effectuer une analyse. -
Compilation non détectée par CodeQL : votre code compilé (en C, C++, C#, Go ou Java) a été compilé, mais CodeQL n’a pas pu détecter les appels du compilateur. Les causes les plus courantes sont :
- Exécution de votre processus de génération dans un conteneur distinct vers CodeQL. Pour plus d’informations, consultez « Exécution de l’analyse du code CodeQL dans un conteneur ».
- Réalisation de la génération avec un système de génération distribué externe à GitHub Actions, utilisant un processus de démon.
- CodeQL ne sait pas quel est le compilateur que vous utilisez.
Si vous rencontrez un autre problème avec votre compilateur ou configuration, contactez le nous via le portail de support GitHub.
Pour plus d’informations sur la spécification des étapes de build, consultez Analyse du code CodeQL pour les langages compilés.