У меня есть репозиторий с общей библиотекой со следующей структурой:
(root)
+- src
| +- com
| +- company
| +- DeploySteps.groovy
+- vars
| +- MainDeploySteps.groovy
Эта библиотека импортируется в работу через Jenkinsfile следующим образом:
library identifier: 'jenkinslib@master', retriever: modernSCM(
[$class : 'GitSCMSource',
remote : 'git@url.to.git:jenkinslib.git',
credentialsId: 'jenkins-credentials'])
Класс репо в src / com / company /DeploySteps.groovy имеет метод (например, CheckoutSCM), который я хочу включить в Jenkinsfile.
DeploySteps. groovy:
def CheckoutSCM() {
useful steps here
}
Возможно ли включить этот конкретный метод в Jenkinsfile, как
import com.company.DeploySteps
А затем использовать его как:
CheckoutSCM('repo-here')
В Jenkinsfile позже? Я прочитал документацию много раз, но не нашел ответа, можно ли импортировать что-то из папки src
, а не только из vars
.
Почему я спрашиваю, потому что теперь при импорте: import com.company.DeployUtils
и затем попробуйте вызвать метод CheckoutSCM()
см. ошибку в выводе консоли Jenkins:
java .lang.NoSuchMethodError: Не найден такой метод DSL 'CheckoutSCM' среди шагов
со списком доступных методов ниже, где нет моего CheckoutSCM
точно)
Итак, возможно ли импортировать класс из папки src
в Jenkinsfile?
PS Я могу получить доступ в Jenkinsfile MainDeploySteps как
MainDeploySteps {}
без проблем, однако.