web-dev-qa-db-ja.com

Jenkinsfile内ですでに使用可能な変数をリストするにはどうすればよいですか?

リポジトリ名、ブランチ名、ビルド番号などの変数をJenkinsfile内から使用しようとしていますが、これに関するドキュメントを見つけることができません。

それらを印刷して利用可能なものを確認する方法はありますか?どうやって?

Groovyオブジェクトの変数と値の出力

更新

this.binding.variables.each {k,v -> println "$k = $v"}

上記のコードを含めようとしましたが、実行が失敗します

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use field groovy.lang.Binding variables
    at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectField(StaticWhitelist.Java:177)
9
sorin

環境変数を確認するには、次のことを試してください。

node {
  sh 'env | sort'
}
14
Jesse Glick

Pipelineジョブ設定ページで、左パネルの[パイプライン構文]リンクをクリックします。それが開き、左側のナビゲーションでGlobal variablesをクリックします。 Pipelineスクリプト内で使用できる多くの変数がリストされています。これには、すべてのJenkinsプロジェクトで使用できる環境変数のセットが含まれます。

Groovyから変数値をロードする例:

mail to: '[email protected]',
    subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) is waiting for input",
    body: "Please go to ${env.BUILD_URL} and verify the build"
12
luka5z

私たちのケースでは、jenkinsfile groovyパイプライン内のすべてのgroovyで定義された変数を取得するために以下を使用しました。

groovyVars = [:] << getBinding().getVariables()
groovyVars.each  {k,v -> print "$k = $v"}
1
DrGecko

サンドボックス内でパイプラインを実行しようとし、低レベルのアクセスを取得しようとしたときに安全ではないと見なした操作。

このJenkinsの管理者でない場合は、管理者に権限を要求するしかありません-それはサンドボックスです。

自分でサンドボックス化した場合は、パイプラインウィンドウの下のチェックボックスを削除するだけです。

それでもサンドボックス化する必要があり、管理者権限がある場合は http:// your_jenkins/scriptApproval / 関数アクセスリクエストを見つけて承認します。

上記の3つのオプションすべてが成功した場合は、スクリプトの次のエラーに進みます

groovy.lang.MissingFieldException:そのようなフィールドはありません:クラスのバインディング:WorkflowScript

GL

UPD:抜けるように先頭の「this」を削除する

0

ここでは、パイプラインで直接利用できる グローバル変数 を見つけることができます。環境変数には、 env でそれらが含まれています。

0
codeGeass