У меня есть отличный код задания DSL (основной скрипт), который создает ~ 100 тестовых заданий.Подход заключается в том, что они должны быть выполнены вручную, так как мы хотим иметь конвейеры для их выполнения ночью.Таким образом, конвейерные задания (несколько) тоже будут созданы.Не проблема.
Но так как основной скрипт DSL groovy будет довольно большим, я хочу, чтобы соответствующий код определения конвейера (который загружаются конвейерные задания) был помещен в отдельные файлы.Поскольку существует так много заданий, я уже поместил конфигурацию всех заданий в отдельный файл, в котором они определены в MAP.Логика для создания всех тестовых заданий помещается в основной скрипт, и он проходит через MAP, расположенный в отдельном файле.Работает нормально.
Не хочу, чтобы имена заданий, которые должны быть сконфигурированы в определении конвейера, были жестко закодированы (Дублированная информация)!Таким образом, планировалось создать файлы определений конвейера из той же логики основного скрипта, которая создает тестовые задания.Затем вся соответствующая информация, такая как имена заданий, целевой хост и т. Д., Доступна для каждой итерации через MAP.
Любые идеи о том, как отдельные файлы (определение конвейера) могут создаваться и редактироваться в ведомом устройстве из сценария groovy job dsl.?
Я пробовал создавать файлы со стандартным Groovy кодом.Но было очевидно, что они были созданы в мастере Дженкинс.И это должно быть в подчиненном.
def newFile = new File("${WORKSPACE}/scripts/jenkins_job_dsl/pipeline.conf")
print "${newFile}"
Я получил это в начальном задании, когда использовался «новый файл»:
...
/home/builduser/workspace/Test_and_demo/Richard_Test/seed_job_richard/scripts/jenkins_job_dsl/pipeline.conf
FATAL: No such file or directory
13:33:50 java.io.IOException: No such file or directory
...