10

我正在尝试从内部使用一些变量,例如存储库名称、分支名称、内部版本号……,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)
4

5 回答 5

13

要查看环境变量,请尝试:

node {
  sh 'env | sort'
}
于 2016-04-03T14:32:59.110 回答
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"
于 2016-04-02T21:35:50.903 回答
2

在我们的例子中,我们使用以下内容在 jenkinsfile groovy 管道中获取所有 groovy 定义的变量:

groovyVars = [:] << getBinding().getVariables()
groovyVars.each  {k,v -> print "$k = $v"}
于 2019-04-29T11:29:55.703 回答
0

在这里您可以找到Pipeline 中直接可用的全局变量,您将在其中找到env中的环境变量

于 2018-04-06T12:59:57.127 回答
0

您尝试在沙箱中执行您的管道,并且当您尝试获得低级别访问权限时,您所做的操作被认为是不安全的。

如果您不是此 Jenkins 的管理员,您别无选择,只能向您的管理员询问权限 - 这就是沙箱。

如果您在某个场合对自己进行了沙箱化 - 只需删除管道窗口下的复选框即可。

如果您仍然想被沙盒化并且您拥有管理员权限,请访问http://your_jenkins/scriptApproval/ 找到您的功能访问请求并批准它。

如果上述所有三个选项都成功,您将继续执行脚本中的下一个错误

groovy.lang.MissingFieldException:没有这样的字段:类的绑定:WorkflowScript

总帐

UPD:删除领先的“this”以通过

于 2018-04-06T10:27:49.713 回答