web-dev-qa-db-fra.com

La notification de tâche Jenkins échoue avec "Aucun consommateur git pour l'URI ..."

Je veux créer un post-receivegit hook qui informe jenkins de la modification, mais aucun travail n'est déclenché dans jenkins.

Ma post-receive hook ressemble à ceci:

curl http://localhost/jenkins/git/notifyCommit?url=<git_repository_url>

Si j'émets la commande dans le terminal, j'obtiens le message suivant:

"No git consumers for URI..."

J'ai un travail jenkins qui est connecté à Git Source Code Management, l'URL du référentiel est donnée ainsi que les branches: */master

J'ai recherché ce problème, mais je n'ai trouvé rien d'utile en rapport avec: "Pas de consommateurs git pour l'URI"

J'utilise:

  • LinuxMint
  • Apache 2.4.6
  • git 1.8.3.2
  • curl 7.32.0
  • Jenkins 1.532.2

J'ai une configuration de proxy dans Apache:

<Proxy *>
    Order deny,allow
    deny from all
   allow from 127.0.0.1
</Proxy>

Le dépôt git est bare.

25
Quirin

Activez l'interrogation SCM pour chaque projet que vous souhaitez notifier:

  1. Allez dans le Dashboard.
  2. Cliquez sur votre projet.
  3. Cliquez sur Configurer.
  4. Sous Build Triggers , cochez la case Poll SCM.
  5. Répétez pour tous les autres projets.

La notification que vous envoyez indique à Jenkins d'interroger le référentiel, donc les projets ne répondront que si l'interrogation SCM est activée.

44

Le message No git consumers for URI apparaît toujours, vous devriez être inquiet si vous voyez No git jobs using repository. La réponse contiendra une liste des travaux planifiés pour l'interrogation, donc tant que vous les voyez, l'interrogation a été déclenchée.

Cela dit, vous voudrez peut-être vérifier que l'interrogation est réellement faire quelque chose. Si vous entrez dans un travail configuré avec Git, vous pouvez voir un lien vers le journal d'interrogation Git sur la gauche. Là, vous pourrez voir si le déclencheur a réellement fait quelque chose et, plus important encore, s'il y a eu une erreur.

J'ai eu un problème similaire à celui-ci, et il m'a fallu un certain temps pour comprendre que mon Git était mal configuré. Mon travail se développera correctement lorsqu'il sera déclenché manuellement, mais le déclencheur d'interrogation utiliserait un chemin différent vers le binaire Git et échouerait. J'ai fini par devoir définir le chemin Git pour résoudre mon problème.

16
monitorjbl

J'ai dû prendre les mesures suivantes:

  1. Activer interrogation SCM comme répondu par @ angstadt530
    • projet-> configurer -> "Build Triggers" -> "Enable SCM Polling" ... check it
  2. Vérifiez le Git Polling Log comme répondu par @monitorjbl
    • projet -> "Git Polling Log" ... pour identifier # 3
  3. Forcer l'interrogation à l'aide de l'espace de travail
    • projet-> configurer -> "Gestion du code source" -> "Comportements supplémentaires" -> ajouter -> "Forcer l'interrogation à l'aide de l'espace de travail" ... sélectionnez-le dans le menu déroulant.

Après avoir terminé # 1 en plus de "Pas de consommateurs git pour URI gitRepoURI", j'ai également obtenu, "Interrogation planifiée de projectName".

Cependant, en regardant le journal d'interrogation Git, j'ai trouvé le message d'erreur: Impossible d'exécuter le programme "C:\Program Files (x86)\Git\bin\git.exe": error = 2, No such file or directory

Pour corriger cette erreur, j'ai dû configurer la gestion du code source pour forcer l'interrogation à l'aide de l'espace de travail (# 3). Je ne sais pas pourquoi, car les versions initiées manuellement fonctionnent correctement. Peut-être un bug - peut-être le mélange d'un serveur Linux et d'un esclave Windows. Mais de toute façon, cela m'a finalement arrangé. J'espère que cela aide.

6
dhj