我想将全局库集成到我的构建流程中。我写了一个基本功能
srv/core/jenkins/Checks.groovy:
package core.jenkins
class Checks implements Serializable {
def script
Checks(script) {
this.script = script
}
def fileExists(){
script.echo "File exists in the repo."
}
}
它被暴露为一个全局变量
变量/文件Exisits.groovy:
def call() {
new core.jenkins.Checks(this).fileExists()
}
在 Jenkins 中配置全局共享库设置时,我有以下设置:
现在在我的 jenkinsfile 中,我正在做这样的事情:
pipeline {
agent { label 'master' }
stages {
stage('Check for md files'){
steps {
sh 'echo hello'
script {
checks.fileExists()
}
}
}
}
}
这总是给出错误
groovy.lang.MissingPropertyException: No such property: checks for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at
为了让它工作,我必须将这些行添加到我的 Jenkinsfile 的顶部
import core.jenkins.Checks
def checks = new Checks(this)
有没有办法让我fileExists
从库中调用函数而不必总是添加上述两行?