如何从Groovy脚本中检索Jenkins环境?

6qfn3psc  于 2023-05-28  发布在  Jenkins
关注(0)|答案(2)|浏览(137)

我在设置一个Jenkins。我正在使用全局管道库使用管道进行编程,以提高可重用性。脚本是面向对象的,并且在Groovy中。有关概念的信息可在there中找到
我无法使用我的库脚本检索Jenkins特定的环境。例如,我想访问:

  • 构建ID
  • 构建编号
  • 职位名称
  • 工作区路径

我尝试使用环境工作空间,但它返回一个空值。我设法直接在管道中检索它,但这不是我的目标。
我用的是Jenkins 2.303.1。

z9smfwbn

z9smfwbn1#

根据您编写脚本的方式,您可能需要注入Jenkins环境。例如,如果您采用更面向对象的方法

// vars/whatever.groovy
import ...

@Field
def myTool = new MyTool(this)
// src/.../MyTool.groovy
import ...

class MyTool {
    private final jenkins

    MyTool(jenkins) {
        this.jenkins = jenkins
    }

    def echoBuildNumber() {
        this.jenkins.echo(this.jenkins.env.BUILD_NUMBER)
    }
}
// Jenkinsfile
@Library(...)
node {
    echo env.BUILD_NUMBER             // echoes build number
    whatever.myTool.echoBuildNumber() // echoes build number
}
lymgl2op

lymgl2op2#

因此,您正在寻找的env可以像这样在groovy脚本中访问
${env.BUILD_NUMBER}${env.JOB_NAME}${env.WORKSPACE}${env.BUILD_ID}

相关问题