2017-04-19 1 views
0

Wir haben ein Git Bitbacket Repository mit vielen Gabeln. Ich möchte einen Job erstellen, der es ermöglicht, Code von einem dieser Gabeln über einen parametrisierten Job auszuführen. Mein Benutzerfall ist: Jemand klickt auf Build mit Parametern, wählt seine/ihre Repository-Verzweigung und Verzweigung, wählt Anmeldeinformationen aus (oder fügt neue hinzu und wählt) und startet dann den Job. Jenkins sollte Code von seiner Gabel mit seinen Anmeldeinformationen erhalten.Jenkins: wie Git Zertifikate in parametrisierten Job übergeben?

Ich benutze Git-Plugin und Credential-Plugin. I moved repository url and branch to parameters. Außerdem habe ich dem Credentials-Plugin die erforderlichen Anmeldeinformationen hinzugefügt. Then I created Credentials parameter.

Aber ich kann Git nicht bekommen, diese Parameter zu bekommen. Ich bekomme immer den Fehler "Authentifizierung fehlgeschlagen". Wie kann ich ausgewählte Zugangsdaten an das Git-Plugin binden? Was sollte ich im Credentials-Feld auswählen, damit Git diese Credits von Job-Parametern erhält? Oder sollte ich etwas anderes machen?

Antwort

1

Ich bin mir nicht sicher, ob es überhaupt möglich ist, Git-Anmeldeinformationen zu parametrisieren. Auch wenn Sie das tun könnten, könnte dies möglicherweise aussetzen eine Sicherheitslücke für die Git-Konten, wenn Ihre Jenkins Instanz nicht SSL ist geschützt (verwendet HTTPS Protokoll anstelle von Normal HTTP).

Alternative Ansatz:

Wenn Sie auf mehrere Gabeln beziehen, ich nehme an, sie sind nur eine Anzahl von Merkmals Zweige des Haupt Master ein, die schließlich mit dem Master verschmolzen werden.

Ich denke, Sie können auch Ihr Ziel mit einem einzigen Jenkins-Job erreichen, der so konfiguriert ist, dass er jede Verzweigung in einem designierten Git-Repository erstellt. Sie müssen das Git Plugin mit einem einzigen Benutzer konfigurieren, entweder mit einem Ihrer Teammitglieder, oder Sie erstellen ein eigenes, exklusiv für die Jenkins-Builds. Dann wird in der Plugin-Konfiguration, müssen Sie einige der Eigenschaften wie folgt definieren:

  • Repositorys -> Name: Herkunft
  • Repositorys -> Refspec: leer lassen
  • Branchen zu bauen: * * (diese beiden Sternchen sind der Schlüssel eines)

Nun wird jeder Stoß an einen Zweig in Ihrer konfigurierten Git-Repository up von Jenkins abgeholt werden, vorausgesetzt, Sie habenkonfiguriertenim Repository für Jenkins-Benachrichtigung.

Der Vorteil dieses Ansatzes besteht darin, dass der Entwicklungs- und Erstellungszyklus vollständig automatisiert ist. Sie können auch automatische E-Mail-Benachrichtigungen hinzufügen.

Hinweis: Diese Antwort basiert auf Jenkins Version 1.6xx.

Verwandte Themen