2 votes

Intégration de Github avec Hudson CI

Ce que j'ai fait jusqu'à présent :

  • Déploiement d'un serveur tomcat6.0 sur c : \www
  • Téléchargement et déploiement du fichier Hudson.war dans le fichier c : \www\webapps dossier
  • Installation du plugin Github
  • Création d'un dépôt privé sur Github
  • Sur le serveur, avec hudson installé, génération des clés ssh.
  • La variable d'environnement %HOME% est fixée à c : \Documents et settings[username] (il y a un répertoire .ssh avec les clés)
  • La variable d'environnement %HUDSON_HOME% a la valeur c : \www\webapps\hudson
  • Dans hudson, j'ai les configurations suivantes :
    • Projet Github : [https://github.com/\[mon](https://github.com/[my) organisation]/[nom du projet]
    • Gestion du code source : Git
    • URL du dépôt : git@github.com :[mon organisation]/[nom du projet].git
    • Spécification de la branche : **
    • Navigateur de référentiel : (Auto)

Lorsque je lance une compilation et que je clique sur le lien de sortie de la console, je vois ceci

Started by user anonymous
Checkout:workspace / C:\www\webapps\hudson\jobs\[project name] (git)\workspace - hudson.remoting.LocalChannel@2e8f6d20
Using strategy: Default
Checkout:workspace / C:\www\webapps\hudson\jobs\[project name] (git)\workspace - hudson.remoting.LocalChannel@2e8f6d20
Fetching changes from the remote Git repository
Fetching upstream changes from git@github.com:[organization name]/[project name].git

... à ce moment-là, il se bloque. Lorsque j'annule la construction, les éléments suivants sont ajoutés --

ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
ERROR:  (Underlying report) : Error performing command: git.exe fetch -t git@github.com:[organization name]/[project name].git +refs/heads/*:refs/remotes/origin/*
null
ERROR: Could not fetch from any repository
FATAL: Could not fetch from any repository
hudson.plugins.git.GitException: Could not fetch from any repository
    at hudson.plugins.git.GitSCM$3.invoke(GitSCM.java:796)
    at hudson.plugins.git.GitSCM$3.invoke(GitSCM.java:754)
    at hudson.FilePath.act(FilePath.java:756)
    at hudson.FilePath.act(FilePath.java:738)
    at hudson.plugins.git.GitSCM.gerRevisionToBuild(GitSCM.java:754)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:540)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1180)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:506)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:422)
    at hudson.model.Run.run(Run.java:1362)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)

2voto

prusswan Points 4055

Tout d'abord, puisque vous démarrez avec une nouvelle instance de CI, je vous recommande vivement d'installer l'option Jenkins (puisqu'il est activement maintenu par la plupart des développeurs originaux de Hudson).

Deuxièmement, installez le Plugin DumpInfo Wrapper et réexécutez la construction. Ce plugin affiche les propriétés du système et les variables environnementales en vigueur pendant la construction et vous permet de les vérifier.

Mise à jour :

Ce plugin devrait enregistrer les propriétés du système et les variables environnementales, je suis surpris que vous ne les voyiez pas. En ce qui concerne la phrase de passe, je vous suggère de générer une clé privée distincte (à partir de votre paire existante) qui n'est pas protégée par une phrase de passe, sinon vous devrez peut-être envisager la solution proposée pour : Pourquoi git ne se souvient pas de ma phrase de passe sous Windows . J'ai vérifié que cela fonctionnait (lorsque j'ai mis en place mon propre CI sur Windows) mais je ne pense pas que cela vaille la peine (il y a d'autres nuances, notamment l'installation et l'exécution de l'instance de tomcat en tant qu'utilisateur actuellement connecté, et NON en tant que service local, afin que pageant fonctionne correctement avec elle), c'est pourquoi je recommanderais la première option.

0voto

dma_k Points 3567

Dans mon cas, il s'est avéré qu'il s'agissait d'un problème avec le client Git : J'utilisais la version 1.6.0 qui déclenchait

fatal: https://github.com/dmak/jaxb-xew-plugin.git/info/refs download error - The requested URL returned error: 403

message d'erreur dans Hudson. Il ressemblait d'abord à cette question mais strace L'analyse de git run a montré que c'est le serveur web Nginx (sur lequel fonctionne GitHub) qui renvoie 403, et non le proxy.

Lorsque j'ai mis à jour la version 1.7.3, le problème a disparu. Donc, conseil général : n'utilisez pas de vieux clients avec GitHub.

P.S. J'ai testé le clonage à la fois avec "Branch Specifier (blank for default) : origin/master" dans la configuration du job Hudson et aussi avec blank (default) : dans les deux cas Git a été capable de découvrir la branche master (origin/master) correctement et de l'utiliser pour le clonage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X