Я хотел создать класс в каталоге /src
, который мог бы получить доступ к докеру и другим шагам плагина.
Итак, у меня есть класс, который выглядит так:
class someClassName implements Serializable {
def env
def steps
def docker
someclassName(env, steps, docker){
this.step = step
this.docker = docker
this.env = env
}
def runCommands(String img, List commands){
docker.image(img).inside {
commands.each {
steps.sh it
}
}
}
Теперь в Jenkinsfile
у меня будет
@Library('name@branch') _
def x = new com.JenkinsLibrary.someClassName(env, steps, docker)
x.runCommands('maven:latest', ['mvn clean', 'mvn test'])
Что мне не нравится, так это то, что у меня есть конструктор для каждого объекта, чтобы я мог вызывать методы, принадлежащие этому объекту. Есть ли лучший объект, который я могу использовать для моего конструктора вместо использования env, steps, docker и т. Д.?
Кроме того, какие шаги конвейера доступны для объекта шагов? то же самое для env?