如何从 Groovy 脚本中检索 Jenkins 环境?
How to retrieve Jenkins environment from Groovy script?
我正在设置 Jenkins。我正在使用 Global Pipeline Libraries 对我的管道进行编程,以提高可重用性。脚本是面向对象的,并且在 Groovy 中。可以找到有关该概念的信息 there
我无法使用我的库脚本检索 Jenkins 特定环境。例如,我想访问:
- Build_ID
- Build_Number
- JOB_Name
- Workspace_path
我尝试使用 env.WORKSPACE 但它返回 NULL。我设法直接在管道中检索它,但这不是我的目标。
我正在使用 Jenkins 2.303.1。
所以你正在寻找的环境可以在groovy脚本
中使用这样的方式访问
${env.BUILD_NUMBER}
${env.JOB_NAME}
${env.WORKSPACE}
${env.BUILD_ID}
根据您编写脚本的方式,您可能需要注入 Jenkins 环境。例如,如果您采用更面向对象的方式
// vars/whatever.groovy
import ...
@Field
def myTool = new MyTool(this)
// src/.../MyTool.groovy
import ...
class MyTool {
private final jenkins
MyTool(steps) {
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
}
我正在设置 Jenkins。我正在使用 Global Pipeline Libraries 对我的管道进行编程,以提高可重用性。脚本是面向对象的,并且在 Groovy 中。可以找到有关该概念的信息 there
我无法使用我的库脚本检索 Jenkins 特定环境。例如,我想访问:
- Build_ID
- Build_Number
- JOB_Name
- Workspace_path
我尝试使用 env.WORKSPACE 但它返回 NULL。我设法直接在管道中检索它,但这不是我的目标。
我正在使用 Jenkins 2.303.1。
所以你正在寻找的环境可以在groovy脚本
中使用这样的方式访问${env.BUILD_NUMBER}
${env.JOB_NAME}
${env.WORKSPACE}
${env.BUILD_ID}
根据您编写脚本的方式,您可能需要注入 Jenkins 环境。例如,如果您采用更面向对象的方式
// vars/whatever.groovy
import ...
@Field
def myTool = new MyTool(this)
// src/.../MyTool.groovy
import ...
class MyTool {
private final jenkins
MyTool(steps) {
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
}