2017-03-14 5 views
0

Ich habe einen Jenkins Job, der ein gradle Skript aufrufen, um eine .war Datei von Quellen zu erstellen.Jenkins Veröffentlichen über SSH Plugin Dateinamen Variable

gradle war Befehl erzeugt eine Datei mit dem Namen Geo-1.0.5.war weil build.gradle Verwendung Versionsnummer:

war { 
    baseName = 'Geo' 
    version = '1.0.5' 
} 

Diese Datei wird unter Verwendung von auf einem Wildfly Server Trog SSH kopiert und eingesetzt werden „über SSH Plugin Publish“.

Wie kann ich dem Plugin mitteilen, dass das Format des Kriegsdateinamens ungefähr so ​​aussieht wie Geo- $ gradle_version .war?

Antwort

1

Dies dokumentiert, wenn Sie die (?) Hilfesymbol innerhalb Jenkins auf die „Quelldateien“ Feld neben klicken:

Die Zeichenfolge ist eine Liste Komma getrennt von für eine Ant fileset zB enthält. **/*.jar
(siehe Patterns im Ant-Handbuch).

In Ihrem Fall könnten Sie also **/Geo-*.war als Quellmuster verwenden.

Dies spiegelt sich auch in dem Screenshot auf der plugin wiki page und in den Source Files und Examples Abschnitte auf der verlinkten „Publish Über ...“ Dokumentation gezeigt.


In Ihrem Kommentar zu dieser Antwort, erwähnen Sie, dass Sie kommunizieren wollen, um die genauen Dateinamen verwenden, nicht, dass der Dateiname ist „so etwas wie Geo- $ gradle_version.war“ für das Hochladen, sondern wollen in ein Skript wird auf dem SSH-Host ausgeführt.

Sie können dies tun, indem Sie einen Shell ausführen-Schritt hinzufügen, der den Dateinamen bestimmt, und ihn als Umgebungsvariable unter Verwendung der EnvInject Plugin exportieren. Zum Beispiel:

f=$(basename `find . -name 'Geo-*.war'`) 
echo WAR_FILENAME=${f} > env.properties 

Dann unter Verwendung eines Inject Umgebungsvariablen mit seinem Weg zu env.properties gesetzt Schritt, der WAR_FILENAME Wert wird auf die Build-Umgebung hinzugefügt werden, für die Verwendung durch die nachfolgenden Schritte.

Im Feld "Exec Command" des SSH-Veröffentlichungsschritts können Sie ${WAR_FILENAME} verwenden, um auf den genauen hochgeladenen Dateinamen zu verweisen.

+0

Vielen Dank für Ihre Antwort. Wildcards können ein Workaround sein, aber ich suchte nach einer Möglichkeit, den genauen Warennamen an das Skript zu übergeben, das nach der SSH-Kopie ausgeführt wurde. – sgargel

+0

Du hättest das in deiner Frage dann klar erwähnen sollen. Ich habe meine Antwort hinzugefügt. –

Verwandte Themen