从共享库调用函数不起作用

Invoking a function from a shared library does not work

我写了一个 groovy 代码,如果它下降超过 3 次,它会禁用一个作业。当我将代码直接添加到主管道之前的 Jenkinsfile 时,它​​按预期工作。我决定将代码移动到共享库,将库添加到 jenkinsfile,调用它,但没有任何反应。你能告诉我我能做什么吗?

它按预期工作:

passedBuilds = []
def call(build) {
    if(build != null && build.result != 'SUCCESS') {
        call(build.getPreviousBuild());
        passedBuilds.add(build);
    }
 }
 call(currentBuild.getPreviousBuild());
if (passedBuilds.size() > 3) {
  println "Oh no!"
  manager.build.project.disabled = true
} else {
  println "Ok!"
}

pipeline {}

没用

@Library('shared-libraries@main')_

disableJobInUnstableCases()

pipeline {}

所以工作代码是:

def iterate(build) {
  passedBuilds = []
  if (build != null && build.result != 'SUCCESS') {
    iterate(build.getPreviousBuild())
    passedBuilds.add(build)
  }
}

def checkForOverLimit() {
  if (passedBuilds.size() > 5) {
    println 'Oh no!'
    manager.build.project.disabled = true
  } else {
    println 'Ok!'
  }
}

def call() {
  iterate(currentBuild.getPreviousBuild())
  checkForOverLimit()
}

然后从管道调用库