Создание папок в Jenkins с помощью Groovy

У меня проблема с пониманием job-dsl-plugin. Я хотел бы создать папки в моем рабочем пространстве jenkins, но я не знаю, как подключить Groovy-скрипт (и объектно-ориентированное программирование) с плагином dsl.

class JenkinsDSL {
    def addFolder(def name) {
        println(name)
        //---GroovyDSL---
        folder(name) {
            displayName(name)
            description("${name} for project")
        }
        //---------------    
    }
}

def job = new JenkinsDSL()

job.addFolder("folder1")
job.addFolder("folder2")

Выше скрипт возвращает ошибку:

javaposse.jobdsl.dsl.DslScriptException: (script, line 5) No signature of method: JenkinsDSL.folder() is applicable for argument types: (java.lang.String, JenkinsDSL$_addFolder_closure1) values: [folder1, JenkinsDSL$_addFolder_closure1@3fac6b47]

В конфигурации Freestyle Project в Jenkins я попытался установить этап сборки на Groovy script и Process Job DSL, но я не уверен, что должно быть правильным.


person Kucharsky    schedule 13.04.2020    source источник


Ответы (1)


Похоже, ваша задача - создать папку в рабочем пространстве, используя фристайл-проект. Сделайте следующее: - назовите свой фристайл-проект именем папки, которую вы хотите создать. - на этапе сборки выполнить любую допустимую команду оболочки. После запуска задания в рабочей области будет создана папка с названием проекта.

person V. Silverman    schedule 13.04.2020
comment
Я понимаю, но мне нужно создать ca. Внутри 1000 папок и заданий. Я не буду делать это с помощью команды оболочки - person Kucharsky; 14.04.2020
comment
Если вы не хотите помещать в сценарий оболочки цикл для создания этих папок и заданий, вы можете вставить такой цикл в программу на своем любимом языке (например, Groovy) и вызвать эту программу из сценария оболочки. - person V. Silverman; 15.04.2020