Импортировать класс из общей библиотеки в Jenkinsfile - PullRequest
1 голос
/ 26 марта 2020

У меня есть репозиторий с общей библиотекой со следующей структурой:

(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 {}

без проблем, однако.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...