2016-09-19 31 views
0

グローバル変数をデフォルト値で設定し、$ {ID}、$ {PRJ}、$ {RELEASE}でそれらにアクセスしようとしましたが、成功しませんでした。Jenkinsのグローバル変数を設定する

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

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

RELEASE - > $ {JOB_NAME} | 3

ジェンキンスジョブ名の形式

ID_PRJ_ RELEASE

例えば-f「_」-dカット1234_AngularJS_Q1

答えて

0

使用通常の引用符とサブプロセスに割り当てる:

ID=$(echo "${JOB_NAME}" | cut -d'_' -f1) 
あなたはまた、2が必要になります

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

PRJで、シェルの内部(コールカットするための回避)を使用することができます

ステップなど、sed。 これを実装する前に、PRJにアンダースコアも含めないようにしてください(例: 1235_Hello_World_1.0。

+0

しかし、シェルスクリプトから$ {ID}、$ {PRJ}、$ {RELEASE}でアクセスすることはできません。 – Dmark

+0

これらの変数は「Manage Jenkins> Global Properties」セクションにあり、一元管理されています。 – Dmark

+0

スクリプトで値を設定し、スクリプトを終了して別のスクリプトを開始すると、最初のスクリプトのすべての設定が失われます。あなたのスクリプトで$ {JOB_NAME}が利用可能になったら、余分な割り当てを "インクルードファイル"に入れ、スクリプトにそのファイルをインクルードするだけです。インクルードは、 'source/usr/local/bin/jenkensutils.inc'のように、スクリプトの2行目('#!/ bin/bash')に 'source'で行います。 'source'をドットで省略し、別のパスまたはファイル名(私は' shlib'というフォルダが好きです)を選択することができます。 –

関連する問題