リポジトリ名、ブランチ名、ビルド番号などの変数をJenkinsfile
内から使用しようとしていますが、これに関するドキュメントを見つけることができません。
それらを印刷して利用可能なものを確認する方法はありますか?どうやって?
更新
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)
環境変数を確認するには、次のことを試してください。
node {
sh 'env | sort'
}
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"
私たちのケースでは、jenkinsfile groovyパイプライン内のすべてのgroovyで定義された変数を取得するために以下を使用しました。
groovyVars = [:] << getBinding().getVariables()
groovyVars.each {k,v -> print "$k = $v"}
サンドボックス内でパイプラインを実行しようとし、低レベルのアクセスを取得しようとしたときに安全ではないと見なした操作。
このJenkinsの管理者でない場合は、管理者に権限を要求するしかありません-それはサンドボックスです。
自分でサンドボックス化した場合は、パイプラインウィンドウの下のチェックボックスを削除するだけです。
それでもサンドボックス化する必要があり、管理者権限がある場合は http:// your_jenkins/scriptApproval / 関数アクセスリクエストを見つけて承認します。
上記の3つのオプションすべてが成功した場合は、スクリプトの次のエラーに進みます
groovy.lang.MissingFieldException:そのようなフィールドはありません:クラスのバインディング:WorkflowScript
GL
UPD:抜けるように先頭の「this」を削除する