Зависит от других файлов из сценария Jenkins job dsl

У меня есть несколько больших сценариев bash в моих файлах dsl задания, которые я объявляю как

String script = '''
  # large script
'''

и вызывая его из метода shell

shell(script)

Однако я хотел бы разбить сценарии на файлы оболочки. Я пытался объявить

String script = new File('script.sh').text

Но задание, которое выполняет сценарий jenkins job dsl, похоже, не находит файл, на самом деле я не уверен, из какого места он даже выполняется.


person Theodor    schedule 18.04.2016    source источник


Ответы (1)


Используйте readFileFromWorkspace, чтобы прочитать содержимое файла из рабочей области задания.

Путь указывается относительно корня рабочей области.

Второй пример в связанных документах API выше предназначен для пакетного файла, но замените пакет на оболочку, и у вас есть решение для вашего случая.

def runScript = readFileFromWorkspace('script.sh')
job('example-2') {
    steps {
        shell(runScript)
    }
}
person badgerr    schedule 18.04.2016
comment
Супер! Работает как шарм! :) - person Theodor; 18.04.2016