2 Stimmen

Github-Integration mit Hudson CI

Was ich bis jetzt getan habe:

  • Bereitstellung eines Tomcat6.0-Servers auf c: \www
  • Die Hudson.war wurde heruntergeladen und in der c: \www\webapps Ordner
  • Installiert das Github-Plugin
  • Ein privates Repository auf Github erstellt
  • Auf dem Server, auf dem hudson installiert ist, werden ssh-Schlüssel erzeugt.
  • Die Umgebungsvariable %HOME% ist auf c gesetzt: \Documents und settings[username] (dort gibt es ein .ssh-Verzeichnis mit den Schlüsseln)
  • Umgebungsvariable %HUDSON_HOME% auf c gesetzt: \www\webapps\hudson
  • In Hudson habe ich die folgenden Konfigurationen:
    • Github-Projekt: [https://github.com/\[my](https://github.com/[my) Organisation]/[Projektname]
    • Quellcode-Verwaltung: Git
    • URL des Repository: git@github.com:[meine Organisation]/[Projektname].git
    • Zweigspezifizierer: **
    • Repository Browser: (Automatisch)

Wenn ich einen Build ausführe und auf den Link für die Konsolenausgabe klicke, sehe ich dies --

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

... woraufhin er sich aufhängt. Wenn ich den Build abbreche, wird Folgendes hinzugefügt.

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 Punkte 6634

Da Sie mit einer neuen CI-Instanz beginnen, empfehle ich Ihnen zunächst die Installation der Jenkins fork (da es von den meisten der ursprünglichen Entwickler von Hudson aktiv gepflegt wird).

Zweitens: Installieren Sie die DumpInfo Wrapper-Plugin und führen Sie den Build erneut durch. Dieses Plugin gibt die Systemeigenschaften und Umgebungsvariablen aus, die während des Builds wirksam sind, und ermöglicht es Ihnen, diese zu überprüfen.

Aktualisierung:

Das Plugin sollte die Systemeigenschaften und Umgebungsvariablen protokollieren. Ich bin überrascht, dass Sie sie nicht sehen. Was die Passphrase betrifft, schlage ich vor, dass Sie stattdessen einen separaten privaten Schlüssel (aus Ihrem bestehenden Schlüsselpaar) generieren, der nicht passphrasengeschützt ist, andernfalls müssen Sie möglicherweise die angebotene Lösung in Betracht ziehen: Warum git sich meine Passphrase unter Windows nicht merken kann . Ich habe mich vergewissert, dass es funktioniert (als ich mein eigenes CI unter Windows einrichtete), aber ich glaube nicht, dass es die Mühe wert ist (es gibt noch andere Feinheiten, wie z. B. die Installation und das Ausführen der Tomcat-Instanz als aktuell angemeldeter Benutzer und NICHT als lokaler Dienst, damit Pageant richtig damit arbeitet), daher würde ich die erste Option empfehlen.

0voto

dma_k Punkte 9996

In meinem Fall stellte sich heraus, dass es sich um ein Problem mit dem Git-Client handelte: Ich benutzte v1.6.0, was zu einer

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

Fehlermeldung in Hudson. Zuerst sah es so aus dieses Thema pero strace Die Analyse von git run hat gezeigt, dass der Nginx WebServer (auf dem GitHub läuft) 403 zurückgibt, nicht der Proxy.

Als ich auf v1.7.3 aktualisiert habe, war das Problem verschwunden. Also allgemeiner Rat: Verwenden Sie keine alten Clients mit GitHub.

P.S. Ich habe das Klonen sowohl mit "Branch Specifier (blank for default): origin/master" in der Hudson-Job-Konfiguration als auch mit blank (default) getestet: in beiden Fällen konnte Git den Master-Branch (origin/master) korrekt erkennen und zum Klonen verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X