我在 PublishGitHub.groovy 上有一个共享的全局函数,如下所示:
#!/usr/bin/env groovy
def call(body)
{
def config = [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = config
echo "\u001B[32mINFO: Publishing...\u001B[m"
body()
echo "\u001B[32mINFO: End Publish...\u001B[m"
}
Run Code Online (Sandbox Code Playgroud)
以及我的 JenkinsFile 上的代码:
environment {
VERSION = "v1.3.${env.BUILD_NUMBER}"
}
stages {
stage ('Publish WebAPI'){
steps{
echo "\u001B[32mINFO: Start Publish...\u001B[m"
PublishGitHub{
echo "This is a body with version: ${env.VERSION}"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
[Pipeline] echo
INFO: Start Publish...
[Pipeline] echo
INFO: Publishing...
[Pipeline] }
Run Code Online (Sandbox Code Playgroud)
并遵循下一个错误:
java.lang.NullPointerException:无法在空对象上获取属性“VERSION”
因为我在body里面没有访问环境变量?