У меня есть конвейер Jenkins для моей организации github, использующей общую библиотеку. Библиотека хорошо работает для нормальной сборки, когда запускается или фиксируется событие вручную. Код библиотеки, как показано ниже:
vars/MyPipeline.groovy
call(body) {
def usercfg = [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = usercfg
body()
if (env.BRANCH_NAME ==~ /^PR-\d+$/) {
pipeline {
agent any
tools "JDK8"
stages {
stage("build jar") {
....
}
}
}
} else {
pipeline {
agent any
tools "JDK8"
stages {
stage("Initialize") {
...
}
stage("Build Complete pipeline") {
...
}
}
}
}
}
И файл Дженкинса в моем хранилище:
@Library('MySharedLibrary') _
MyPipeline {
myconfig = [ build: true ]
}
Корпус содержит несколько настроенных конфигураций.
Когда происходит сборка без PR, она проходит корректно, без проблем.
Когда происходит сборка PR, он переходит в первый раздел и выбрасывает «агента», который не входит в число шагов.
java.lang.NoSuchMethodError: No such DSL method 'agent' found among steps
Я не могу вспомнить, работает ли этот PR-конструктор, поскольку эта библиотека существует в течение определенного периода времени. И это не должно быть проблемой версии плагина, поскольку вы можете видеть, что основной конвейер проходит правильно.