从共享库调用函数不起作用
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()
}
然后从管道调用库
我写了一个 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()
}
然后从管道调用库