2012-04-04 5 views
5

Ich habe einen lokalen Git-Server (CentOS), wo jeder ihre Arbeit an dieses Repository schiebt. Jenkins schafft über Nacht das, was in diesem Repository ist. In letzter Zeit habe ich ein Git Enterprise-Konto. Ich habe mich gefragt, ob es eine Möglichkeit gibt, Jenkins dazu zu zwingen, 1) zieht nur den Code vom lokalen Server und 2) Wenn ein Build erfolgreich war, sendet der Code an git Enterprise Remote Repository.Abrufen von einem Git-Server und Push zu einem anderen Server mit Jenkins

Ich verwende v Jenkins. 1.458

Antwort

7

gut, wäre eine Option sein, nur ein Skript zu erstellen, das dies tut von bash ... aber ...

Sie können zwei git Repositories fügen Sie einfach unter der „Quellcodeverwaltung“ Abschnitt nach der Installation Multiple SCMs plugin, und dann angeben, dass Sie REPOLOCALNAME/Zweig erstellen möchten, und dann am Ende unter "Git-Herausgeber" angeben, dass Sie zusammenführen und Push an den Remote-Zweig möchten. (z. B. BranchToPush = Branchname und TargetRemoteName = REMOTEREPONAME)

* Denken Sie daran, dass die Namen unter Erweiterte Optionen des Repositorys angegeben werden, wenn Sie sie unter dem SCM-Abschnitt hinzufügen.

* Ich habe dies nicht getestet, es besteht die Möglichkeit, dass Sie nur aus dem selben Repository ziehen und pushen können.

+0

Aber weißt du das? Wie können wir das mit einem Skript machen? – Peymankh

+2

Es war nicht so einfach, aber ich konnte es endlich schaffen, und es war im Grunde wie das, was du gesagt hast, danke. – Peymankh

+0

Entschuldigung dafür, dass ich nicht expliziter/früher antworten werde: S Ich bin froh zu hören, dass es funktioniert. Am Ende mussten Sie ein benutzerdefiniertes Bash-Skript erstellen? oder konntest du es innerhalb von jenkins arbeiten lassen? – CasualT

0

Sie könnten den Push-to-Github als letzte Build-Schritt einrichten, die erst nach alles andere läuft hat zum Abrufen der Code aus dem lokalen die normalen Mechanismen gelungen und verwenden Git-Repository. Es gibt kein Plugin mit dieser Funktionalität im Moment.

+0

Nun, anstelle von GitHub benutze ich GitEnt, aber das ist nicht der Fall. Ok also irgendeinen Vorschlag wie es geht oder vielleicht ein Tutorial? – Peymankh

+0

Sorry, ich habe es falsch gelesen. Der Prozess sollte jedoch der gleiche sein - für das Repository, das Jenkins verwendet, richten Sie ein neues Remote (einmal) ein und drücken es dann am Ende jedes Builds. Es gibt ein kurzes Tutorial, wie man das macht [hier] (http://thelucid.com/2008/12/02/git-setting-up-a-remote-repository-and-doing-an-initial-push/) beispielsweise. –

Verwandte Themen