web-dev-qa-db-ja.com

Jenkins Pipelineの環境変数

Jenkins Pipeline Titleを取得するために利用できる環境変数はありますか?

$JOB_NAMEを使用してフリースタイルジョブのタイトルを取得できることは知っていますが、パイプライン名を取得するために使用できるものはありますか?

34
Akki

Groovyから同じ名前を使用して同じ環境変数にアクセスできます(例:JOB_NAMEまたはenv.JOB_NAME)。

ドキュメントから:

環境変数は、Groovyコードからenv.VARNAMEまたは単にVARNAMEとしてアクセスできます。このようなプロパティにも書き込むことができます(env。プレフィックスのみを使用):

env.MYTOOL_VERSION = '1.33'
node {
  sh '/usr/local/mytool-$MYTOOL_VERSION/bin/start'
}

これらの定義は、ビルド中または完了後にREST AP​​Iを介して、またビルドステップを使用してアップストリームパイプラインビルドからも利用できます。

残りのドキュメントについては、パイプラインジョブの[パイプライン構文]リンクをクリックしてください enter image description here

48
badgerr

特に複数のノードを使用して、envを変更した後の副作用の問題を回避するには、一時的なコンテキストを設定することをお勧めします。

環境を変更する1つの安全な方法は次のとおりです。

 withEnv(['MYTOOL_HOME=/usr/local/mytool']) {
    sh '$MYTOOL_HOME/bin/start'
 }

このアプローチは、コマンド実行後にenvを汚染しません。

38
sorin