2017-11-01 14 views
1

Ich habe Jobs genannt wie:Jenkins & Subversion URL mit einem Teil variabel von Jobnamen

BUILD--PROJECT--TEMPLATE1 
BUILD--PROJECT--TEMPLATE2 
BUILD--PROJECT--TEMPLATE3 

Jeder Auftrag wird SCM für Subversion für einen separaten Ordner/Projekt mit:

https://svn.domain.com/repos/project/template1/ 
https://svn.domain.com/repos/project/template2/ 
https://svn.domain.com/repos/project/template3/ 

Wenn neue Job erstellt wird, müssen wir den Pfad dort manuell aktualisieren.

Ist es möglich, Variablen von einem Jobnamen innerhalb SCM zu verwenden, wie:

BUILD--PROJECT--TEMPLATE1 
https://svn.domain.com/repos/project/${template, 3rd parameter}/ 

Wie würden Sie es lösen, irgendwelche Ideen?

Antwort

1

Verwenden Sie die Plugins Environment Injector Plugin und das EnvInject API Plugin. Konfigurieren Sie sie wie im Handbuch beschrieben.

Innerhalb eines Jobs 'allgemeiner Abschnitt' tick auf "ein Umfeld für den Lauf vorbereiten"

zum Groovy Skript hinzufügen:

return [ 
JOB_TEMPLATE_NAME: JOB_NAME.split('-').last() 
] 

In Ihrem SCM definieren Sie URL wie:

https://svn.domain.com/repos/project/${JOB_TEMPLATE_NAME} 

Wenn Sie die globalen Variablen SVN_REVISION oder SVN_URL verwenden, gehen diese verloren. Fehler?

Meine Abhilfe ist: der erste Build-Schritt hinzufügen auszuführen Shell mit: Datei

echo "SVN_REVISION=$(svn info | awk '/^Revision:/{print $2}')" >env.properties 

Im zweiten Build-Schritt injizieren Umgebungsvariablen (Plugin) und stellen Sie ‚Eigenschaften Dateipfad‘ auf ‚env.properties‘ erstellt in Schritt 1. Jetzt können Sie die SVN_REVISION in anderen Build-Schritten verwenden.

Hoffe, das hilft!

ciao!

Verwandte Themen