У меня есть отличный код Job DSL (основной скрипт), который создает ~ 100 тестовых заданий. Подход состоит в том, чтобы их можно было выполнять вручную, а также мы хотим, чтобы конвейеры выполнялись в ночное время. Таким образом, будут созданы рабочие места конвейера (несколько). Не проблема.
Но так как основной Groovy-скрипт DSL будет довольно большим, я хочу, чтобы соответствующий конвейерный скрипт (который будут загружаться конвейерными заданиями) был помещен в отдельные файлы. Поскольку существует так много заданий, я уже поместил конфигурацию всех заданий в отдельный файл, где они определены в MAP. Логика для создания всех тестовых заданий помещена в основной сценарий, и он проходит через MAP, расположенный в отдельном файле. Работает отлично.
Не хотите, чтобы имена заданий, которые должны быть настроены в определении конвейера, были жестко запрограммированы (дублирующаяся информация)! Таким образом, план состоял в том, чтобы создать файлы определения конвейера на основе той же основной логики сценария, которая создает тестовые задания. Затем вся соответствующая информация, такая как имена заданий, целевой хост и т. Д., Доступна для каждой итерации через MAP.
Есть идеи, как можно создавать отдельные файлы сценариев конвейера и управлять ими из сценария dsl groovy job?
Я пробовал создавать файлы со стандартным отличным кодом. Но было очевидно, что они созданы в Jenkins Master. И это должно быть в раб.
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
...