我正在尝试使用Jenkinsfile
内部的存储库名称,分支名称,内部版本号等变量,但我无法找到有关此内容的任何文档。
有没有办法打印它们以便我可以看到它们有哪些?怎么样?
我认为它可能与Printing out variables and values in a Groovy object
有关更新
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)
答案 0 :(得分:14)
要查看环境变量,请尝试:
node {
sh 'env | sort'
}
答案 1 :(得分:12)
在Pipeline
作业配置页面中,点击左侧导航栏中的“管道语法”链接。它会打开,并在其左侧导航栏中单击Global variables
。它列出了许多可以在Pipeline
脚本中使用的变量,包括一组环境变量可供所有Jenkins项目使用。
从Groovy加载变量值的示例:
mail to: 'devops@acme.com',
subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) is waiting for input",
body: "Please go to ${env.BUILD_URL} and verify the build"
答案 2 :(得分:1)
在我们的案例中,我们使用以下方法在jenkinsfile groovy管道中获取所有groovy定义的变量:
groovyVars = [:] << getBinding().getVariables()
groovyVars.each {k,v -> print "$k = $v"}
答案 3 :(得分:0)
您尝试在沙箱中执行管道,并且当您尝试获得低级别访问时,您认为操作不安全。
如果你不是这个Jenkins的管理员,你别无选择,只能向你的管理员询问权限 - 这就是沙箱。
如果您在某个场合沙盒自己 - 只需删除管道窗口下的复选框即可。
如果您仍想要沙盒并拥有管理员权限 得到http://your_jenkins/scriptApproval/ 找到您的功能访问请求并批准它。
如果上述所有三个选项都成功 您将继续执行脚本中的下一个错误
groovy.lang.MissingFieldException:没有这样的字段:类的绑定:WorkflowScript
GL
UPD:删除主导“this”以通过
答案 4 :(得分:0)
在这里,您可以直接找到Pipeline中提供的Global variables,您可以在env中找到环境变量