2016-04-06 3 views
3

Я знаю, что его можно запустить .dsl-файл из внешнего источника, а не просто писать код потока в описании задания, но каждый раз, когда я пытаюсь запустить, скажем:Прочтите DSL из файла в Jenkins вне рабочего пространства

/home/flows/flow_script.dsl 

Я получаю следующее сообщение об ошибке:

java.io.FileNotFoundException:/home/flows/flow_script.dsl (No such file or directory) 

путь является правильным, я могу видеть файл через этот путь из оболочки, но это не позвольте мне выбрать что-либо за пределами «строит рабочее пространство» apparetly.

ответ

1

Я недавно столкнулся с этой проблемой: мой DSL-скрипт был вне моего рабочего пространства (установлен через пакет). Проблема заключается в том, что путь DSL Scripts является форматом Ant, который допускает только определенные шаблоны (а не абсолютные пути).

Мое обходное решение хакерское, но оно действительно сработало: добавьте шаг Execute Shell до шаг «Обработка заданий DSL», который символизирует внешний каталог в рабочей области.

Что-то вроде этого:

echo "Creating a symlink from /home/flows to workspace" 
ln -sf "/home/flows" .flows 

Затем вы можете установить путь DSL скрипты для ".flows/flow_script.dsl".

У этого есть некоторые дополнительные оговорки, конечно: каталог, с которым вы будете ссылаться, должен быть доступен пользователю jenkins. И это, вероятно, нарушает множество лучших практик.