Декларативный конвейер Jenkinsfile - нет такого класса конвейера свойств
Я создал базовый декларативный конвейер на Дженкинс. Когда я запускаю сборку, она выдает следующую ошибку
groovy.lang.MissingPropertyException: No such property: pipeline for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:130)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:155)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
at WorkflowScript.run(WorkflowScript:2)
at ___cps.transform___(Native Method)
Сервер Jenkins по умолчанию настроен с подключаемыми модулями по умолчанию последней версии. Дженкинсфайл показан ниже
pipeline {
agent any
stages {
stage('Sample Stage') {
steps {
sh '''
ls
'''
}
}
}
}
Похоже, pipeline
блок терпит неудачу, когда Дженкинс читает Jenkinsfile, что довольно запутанно в Jenkinsfile, выглядит хорошо для меня.
2 ответа
Кажется, что плагин Script Security 1.45 сломал весь конвейерный код
Это произошло потому, что вы запускаете скрипт в режиме песочницы. Такие функции, как конвейер, там не публикуются. Это было из песочницы до версии 1.44 плагина безопасности скрипта.
Если вы хотите запустить конвейер с одной веткой - просто снимите флажок "Использовать Groovy Sandbox" внизу страницы настроек вашей работы. Если вы используете многоотраслевой конвейер, то, возможно, единственный способ для вас - понизить версию плагина.