Wie klone ich einen Job in Jenkins?


231

Jenkinsdas hat GerritPlugin an Ort und Stelle , so dass , wenn wir tun , Check-In Gerrit, Jenkinsführt einen Build und wenn es gelingt, dann in der Änderung Gerritüberprüft wird. Wenn der Build fehlschlägt, ist dies nicht der Fall. Mein Verständnis ist, dass dies durch Jobs erreicht wird, die in eingerichtet wurden Jenkins. Wir haben jetzt einen neuen Zweig ( git) erstellt, und ich denke, ich muss die vorhandenen Jobs klonen, die auf den anderen Zweig verweisen, damit bei jedem Commit derselbe Workflow ausgeführt und Builds ausgeführt werden. Kann jemand erklären, wie ich diese Jobs klonen würde? Ich sehe anscheinend keine Möglichkeit, dies über die Benutzeroberfläche zu tun, und ich kann auch keine Möglichkeit finden, die Jobs über die Benutzeroberfläche aufzulisten.


7
Sie sollten in der Lage sein, "Vorhandenen Job zu kopieren" als eine der Optionen auf der Seite "Neuer Job". Siehe stackoverflow.com/questions/3133537/…
nofinator

Antworten:


180

Um einen vorhandenen Job zu kopieren, gehen Sie zu http://your-jenkins/newJobund verwenden Sie die Option "Vorhandenen Job kopieren". Geben Sie den Namen des vorhandenen Jobs ein - Jenkins überprüft, ob er vorhanden ist.

Die Standardregisterkarte auf der Startseite von Jenkins sollte alle vorhandenen Jobs auflisten, aber möglicherweise hat Ihr Vorgänger die Registerkarte gelöscht. Sie können eine neue Registerkarte erstellen, in der alle Jobs von aufgelistet sindhttp://your-jenkins/newView.


Beachten Sie, dass Sie beim Kopieren eines vorhandenen Jobs den Namen angeben müssen (der beim Zugriff auf den Job nicht wie in der URL codiert ist). Wenn der Jobname also Leerzeichen enthält, bleiben diese erhalten. Geben Sie in Kürze nur den ursprünglichen Namen des Jobs an, sonst nichts.
Yauhen

Wenn das ez-template-Plugin installiert ist, erstellt "Vorhandenen Job kopieren", das auf eine Vorlage oder einen Job mithilfe einer Vorlage angewendet wird, einen neuen Job, der von der Vorlage abhängig ist. Wenn Sie tatsächlich eine unabhängige Kopie wünschen, können Sie die Use another job as a templateKonfiguration löschen .
user598656

146

Sie können einen Job klonen:

  1. Klicken Sie auf den Link "Neuer Artikel"
  2. Geben Sie einen neuen Namen für Ihren Job
  3. Aktivieren Sie das Optionsfeld "Vorhandenes Objekt kopieren".
  4. Geben Sie den Jobnamen an, den Sie klonen möchten
  5. OK klicken'

Schließlich haben Sie Ihren neuen Job, der alle Funktionen Ihres geklonten Jobs widerspiegelt.


117

Jenkins 2.9

  1. Jenkins> Neuer Artikel

    Jenkins neuer Artikel

  2. Geben Sie einen Artikelnamen ein - zB "MY_CLONE"

    Geben Sie einen Artikelnamen ein

  3. Geben Sie den Quelljob ( Kopieren von ) an> OK an

    Wenn Sie mit der Eingabe des Namens beginnen, werden die vorhandenen Werte gefunden. Beachten Sie, dass hier zwischen Groß- und Kleinschreibung unterschieden wird.

    Kopieren von OK

  4. Klicken Sie auf Speichern, wenn Sie die Standardwerte beibehalten möchten.

  5. Jetzt sind beide Jobs am selben Ort verfügbar:

    Jobs anzeigen


3
Bilder sagen mehr als tausend Worte. Konnte den kleinen Dropdown für mein Leben nicht finden. Mulțumiri
Michaelok

34

New Item> Project Name= abc> Anstelle vonFreestyle job wählenCopy from job name of already existing jobs

Wenn Sie sich in dem Ordner befinden, den Sie aus dem Verzeichnis kopieren möchten, verwenden Sie ../.


Vielen Dank für die Erwähnung../
Satevg

14

Wenn Sie in denselben Jenkins, aber in verschiedenen Unterordnern kopieren möchten, erstellen Sie ein neues Element -> verwenden Sie die Kopie von. Neuer Job wird im selben Verzeichnis geklont. Verwenden Sie dann die Option zum Verschieben, um es in das gewünschte Verzeichnis zu verschieben


Das habe ich benutzt. Das Kopieren in denselben Ordner reicht oft nicht aus. Vielen Dank!
Donmartin

11

Alle obigen Antworten sind gut. Wenn Sie jedoch "Ordner" für Ihre Jobs erstellt haben, sieht das etwas anders aus.

Klicken Sie auf den Ordner, unter dem Sie einen neuen Job erstellen möchten. Klicken Sie dann im linken Menü auf "Neues Element". Jetzt sieht Ihre URL "Neuer Job" folgendermaßen aus (vorausgesetzt, Sie erstellen den neuen Job unter "Mein Ordner"):

http://my-jenkins:8080/job/my-folder/newJob

Unter Enter an item nameGeben Sie den gewünschten neuen Jobnamen ein . Dann benutzen Sie dieCopy from Textfeld unten. Geben Sie den Jobpfad des Quelljobs ein.

Beispiel: Wenn sich Ihr Quelljob im Ordner befindet src-folderund der Name des Jobs lautet src-job, müssen Sie ihn eingebensrc-folder/src-job Feld "Kopieren von" .

Ich hoffe es hilft.


Ich versuche immer noch, eine Möglichkeit zu finden, Jobs über Ordnerstrukturen hinweg zu kopieren: Jenkins fügt das Literal "Job" für jedes neue Element hinzu, das ein Ordner ist, z. B. habe ich einen Job bei localhost: 8080 / job / x / job / y / job_1 , wobei x und y Ordner sind. job_1 ist der eigentliche Job. Wie kann ich diesen Job nach localhost kopieren : 8080 / job / x / job / z / job_1 ? Ich habe alle Verweise auf den Quelljob ohne Glück versucht.
Heinz

1
Gehe zu localhost:8080/job/x/job/y/job_1. Auf dieser Seite sollten Sie sehen Full project name. Versuchen Sie dies, wenn Sie die Quelle angeben.
Bhushan

Wenn Sie zwei Ordner haben folder1und folder2auf dem gleichen Niveau und Sie kopieren möchten folder1\job1zu folder2\job1, können Sie ein neues Element in den Ordner erstellen folder2und verwenden Sie dann ..in der Ordnerstruktur zurück zu gehen und zu kopieren ../folder1/job1.
DRz


10

In meinem Fall musste ich einen Job von einer Jenkins-Instanz in eine andere kopieren.

Also habe ich zuerst unter der Verzeichnisstruktur der alten Jenkins (der Job- / Verzeichnisname; auch die config.xml notiert) und dann unter der Verzeichnisstruktur der neuen Jenkins nachgesehen, wo ich dann ein Verzeichnis mit demselben Namen / Job erstellt und kopiert habe die config.xml unter diesem neu erstellten Verzeichnis.

Dann drücke ich unter "Jenkins verwalten" auf "Konfiguration von Festplatte neu laden". Das ist es.


Vielen Dank für den Tipp "Konfiguration von Festplatte neu laden"!
Aliza

1
Ja, so mache ich, wenn ich mehrere Elemente in großen Mengen kopieren muss. Vor dem "Neuladen von der Festplatte" können Sie in der CLI auch die erforderliche manuelle Magie ausführen, z. B. einige Parameter, Textteile usw. in config.xml suchen / ersetzen . Beachten Sie, dass der Name des Verzeichnisses, in dem sich config.xml befindet, der Name Ihres Jobs ist (wenn Sie also im Gegensatz zu Rohit einen neuen Job erstellen müssen, geben Sie ihm einfach einen anderen Namen).
RAM237

Meiner Meinung nach ist dies die beste Option, wenn Sie mehrere Ordnerebenen mit vielen Jobs enthalten.
Cabreracanal

3

Erstellen Sie ein neues Element und gehen Sie zur letzten Option, die Sie zum Kopieren von vorhandenen Elementen finden. Schreiben Sie einfach Ihren aktuellen Jobnamen und Sie haben einen Klon dieses Projekts, mit dem Sie arbeiten können.


1

Ich konnte Jenkins Job nicht aus dem Unterordner kopieren. copy fromDie Option zeigte nicht den Vorschlag an, nach dem ich gesucht hatte. Ohne den Vorschlag zu verwenden, funktionierte das Kopieren des Jobnamens nicht.

Wenn Sie also einen Job aus dem äußeren Ordner erstellen möchten, müssen Sie den Job zuerst im Unterordner erstellen und dann in einen anderen Ordner verschieben, in dem Sie ihn ablegen müssen.



0

Alle Antworten hier sind super hilfreich, aber ich vermisse einen sehr seltsamen Fehler bei Jenkins. Nachdem Sie die neuen Auftragskonfigurationen bearbeitet haben, wird die Option saveoder manchmal nicht angezeigt, wenn Ihre Zoomstufe zu hoch ist apply. Die Schaltfläche befindet sich auf der Seite und wird durch Ihre Zoomstufe ausgeblendet. Sie müssen verkleinern, bis Sie die Schaltfläche unten links auf Ihrer Seite sehen.

Seltsam, ich weiß!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.