Зависит от других файлов из сценария работы Jenkins dsl.
У меня есть несколько больших bash-скриптов в моих dsl-файлах, которые я объявляю
String script = '''
# large script
'''
и позвонив из shell
метод
shell(script)
Как бы то ни было, я хотел бы разбить сценарии на файлы оболочки. Я пытался объявить
String script = new File('script.sh').text
Но задание, которое выполняет сценарий dsl jenkins job, похоже, не находит файл, на самом деле я не уверен, из какого места он даже выполняется.
1 ответ
Решение
Используйте readFileFromWorkspace для чтения содержимого файла из рабочей области задания.
Путь указывается относительно корня рабочей области.
Второй пример в приведенной выше документации по API предназначен для пакетного файла, но замените пакет на shell, и у вас есть решение для вашего случая.
def runScript = readFileFromWorkspace('script.sh')
job('example-2') {
steps {
shell(runScript)
}
}