Зависит от других файлов из сценария работы 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)
    }
}
Другие вопросы по тегам