2016-11-11 5 views
1

Я довольно новичок в Дженкинсе, поэтому извиняюсь, если вопрос недостаточно подробный, но я клянусь, что сначала сделал свой поиск.Доступ к файлам рабочего пространства Jenkins в конвейере scrpit

У меня есть сценарий конвейера, который должен обрабатывать файлы, которые были извлечены из SCM (git) на предыдущем шаге. Одним из параметров, переданных конвейеру, является папка, в которой находятся все эти файлы. В этой папке могут быть подпапки, и мне тоже нужно их обработать.

Так, например, я могу передать параметр ./my-folder к трубопроводу и мою папку- может содержать следующее:

./my-folder/file1.json

./my-folder/file2.json

./my-folder/subfolder/file3.json

каталог my-folder будет частью хранилища клонировали г во время фазы сборки.

Пока я развиваю свой Groovy скрипт локально я делал что-то похожее на это:

def f = new File(folder) 

, но это не работает в Дженкинс данный код работает на хозяина, а папка находится на другой узел. После обширного исследования я теперь знаю, что есть два способа читать файлы в Дженкинсе.

  1. Использование readFile. Это было бы нормально, но я не нашел простой способ сканирования всей папки и подпапок для загрузки всех файлов.
  2. Используйте FilePath. Это было бы моим предпочтительным способом, так как это больше OO, но я не нашел способ создать экземпляр этого класса. Все подходы, которые я видел при поиске в Интернете, относятся к переменной build, которая, я не совсем уверен, почему, не определена в скрипте. На самом деле я получаю groovy.lang.MissingPropertyException: No such property: build for class: WorkflowScript

Надеюсь, вопрос имеет смысл, иначе я был бы рад добавить более подробную информацию.

Спасибо,

Нико

ответ

0

мне удалось сканировать содержимое папки, используя следующий подход:

sh "find ${base-folder} -name *.* > files.txt" 
def files = readFile "files.txt" 

и затем цикл по линиям в files.txt, чтобы открыть каждый файл.

Проблема в том, что это работает только для файлов txt. Я все еще не могу открыть двоичный файл (например: zip-файл), используя readFile

Смежные вопросы