Ich habe einen Job namens "Entwicklung" und ein anderes Projekt namens "Code-Analyse". Im Moment haben wir zwei verschiedene Jobs und verschiedene Arbeitsbereiche, aber den gleichen Code. Gibt es eine Möglichkeit, denselben Arbeitsbereich für mehrere Jobs zu verwenden?
Ich habe die in Jenkins verfügbaren Plugins überprüft, aber kein passendes gefunden.
74
Antworten:
Angenommen, Ihr Jenkins-Arbeitsbereich "Entwicklung" ist
/var/workspace/job1
.General
Klicken Sie auf der Jobkonfigurationsseite "Codeanalyse" unter der Registerkarte aufAdvanced...
und wählen Sie die Option aus,Use custom workspace
und geben Sie denselben Arbeitsbereich/var/workspace/job1
wie für Ihren "Entwicklungs" -Job an.quelle
General
Zu Ihrer Information, dass Sie in Jenkins Version 2.147 zum Festlegen eines benutzerdefinierten Arbeitsbereichs zur Registerkarte Ihres Projekts gehen, dann auf dieAdvanced...
Schaltfläche klicken und das Kontrollkästchen "Benutzerdefinierten Arbeitsbereich verwenden" sehen.Es gibt ein Jenkins-Plugin, mit dem Sie einen gemeinsam genutzten Arbeitsplatz erstellen und für jeden Job einrichten können, der die Dateien aus dem angegebenen Repository benötigt.
Anwendungsfall:
Ähnlich wie Sie es benötigen, erstellen Sie zuerst zwei Jobs aus demselben Git-Repository, gehen Sie dann zu "Jenkins verwalten" und erstellen Sie einen gemeinsamen Arbeitsbereich . Und zeigen Sie darauf, bei jedem Job, den Sie aus diesen Dateien lesen müssen.
Jenkins Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Shared+workspace+plugin#
PS: Sie sollten sich mit "Bekannten Problemen" befassen, die einen Deal Breaker für Ihre Bedürfnisse darstellen könnten.
^^ Dieser ist noch ungelöst , ich habe es versucht und passiert immer noch. Nach einigen Speichervorgängen (nur um sicherzugehen) läuft der Job perfekt.
quelle
Wenn Sie nicht finden konnten,
Use custom workspace
können Sie es unter Ihrem Projekt findenconfigure>General>Advanced>Use custom workspace
quelle
Ich habe das Vererbungs-Plugin ausprobiert und whoa! Das Ding ist ein Vorschlaghammer, wenn ich nur einen winzigen Nagel habe.
Am Ende habe ich eine Post-Build-Aktion "Trigger parametrisierter Build für andere Projekte" mit "Build auf demselben Knoten" und einem "vordefinierten Parameter" hinzugefügt. Für den Downstream-Job muss ein gleichnamiger Parameter definiert sein (WORKSPACE_PARENT). Sie können ihn jedoch leer lassen. Anschließend definieren Sie den Downstream-Job mit einem benutzerdefinierten Arbeitsbereich (unter Allgemein> Erweitert).
Ich habe mich für eine Aktion nach dem Build entschieden, da der tatsächliche Erfolg des Build-Jobs (vorerst) unabhängig von den Ergebnissen des Downstream-Builds ist. Wenn Sie die Ergebnisse des Downstream-Jobs auf den übergeordneten Job übertragen möchten, müssen Sie ihn als Build-Task und nicht als Post-Build-Aktion hinzufügen.
Es funktioniert gut für das, was ich brauche.
Post-Build-Aufgabe der Eltern:
Benutzerdefinierter Arbeitsbereich des Kindes:
quelle