2016-09-19 6 views
0

Ich habe einige globale Variablen mit Standardwerten eingerichtet und habe versucht, mit $ {ID}, $ {PRJ}, $ {RELEASE} darauf zuzugreifen, aber keinen Erfolg.Setze globale Variablen in Jenkins

ID -> $ {JOB_NAME} | Schnitt -d '_' -f 1

PRJ -> $ {JOB_NAME} | cut -d '_' -f 2

RELEASE -> $ {JOB_NAME} | cut -d ‚_‘ -f 3

Jenkins Job Name Format

ID_PRJ_

RELEASE Z.B. 1234_AngularJS_Q1

Antwort

0

Verwenden Sie normale Anführungszeichen und weisen mit einem Teilprozess:

ID=$(echo "${JOB_NAME}" | cut -d'_' -f1) 

Sie auch Shell-Interna verwenden können (einen Anruf zu vermeiden schneiden), mit

ID="${JOB_NAME//*_}" 
RELEASE="${JOB_NAME//*_}" 

The PRJ wird 2 müssen Schritte oder etwas wie sed. Stellen Sie jedoch vor der Implementierung sicher, dass der PRJ auch keine Unterstriche enthält, z. 1235_Hello_World_1.0.

+0

Aber kann immer noch nicht mit $ {ID}, $ {PRJ}, $ {RELEASE} aus den Shell-Skripten zugreifen. – Dmark

+0

Bitte beachten Sie, dass diese Variablen im Bereich "Jenkins verwalten> Globale Eigenschaften" verwaltet und zentral verwaltet werden. – Dmark

+0

Wenn Sie die Werte in einem Skript festlegen, das Skript beenden und ein anderes Skript starten, gehen alle Einstellungen des ersten Skripts verloren. Wenn $ {JOB_NAME} in Ihren Skripten verfügbar ist, können Sie die zusätzlichen Zuweisungen in eine "include-Datei" einfügen und diese Datei in Ihr Skript einfügen. Die Einfügung erfolgt mit "source", etwas wie "source/usr/local/bin/jenkensutils.inc" als zweite Zeile Ihres Skripts (das erste wird '#!/Bin/bash'). Sie können 'source' mit einem Punkt abkürzen und einen anderen Pfad oder Dateinamen wählen (ich bevorzuge einen Ordner' shlib'). –