Могу ли я передать список элементов из WORKSPACE в сценарий Groovy?
Что я имею в виду, у меня есть файл в рабочем пространстве Jenkins с элементами
"element1", "element2", "element3", "element4"
Я хочу передать этот файл как список скрипту Groovy.
List components = ["element1", "element2", "element3", "element4"]
Я пытался использовать
List componentsList = []
env.Components = sh(script: "cat $WORKSPACE/File", returnStdout: true).trim().componentsList.addAll()
Но это не работает (сообщение об ошибке от Дженкинса)
groovy.lang.MissingPropertyException: No such field found: field java.lang.String componentsList
P.S. Мне нужен этот список для создания карты из 2 списков в будущем
Кстати, я думаю, что могу избежать использования sh
для получения содержимого из файла. Возможно, для этого лучше использовать инструменты Groovy?
1 ответ
Я бы не пытался использовать sh()
, так как все, что он делает, это читает файл. Я бы сделал что-то вроде этого, чтобы прочитать файл:
env.Components = readFile("File").trim().split(",") as List
Вы можете пропустить определение списка и вообще пропустить sh. Использование readFile
будет считывать файл в строку из текущего рабочего каталога, который, скорее всего, является корнем рабочей области.
Одна вещь, которую следует учитывать, это то, что если бы эти компоненты были на отдельных строках, вы могли бы сделать это:
env.Components = new File("File").collect { it.trim() }
Похожие вопросы
Новые вопросы
shell
Термин «оболочка» относится к общему классу интерпретаторов текстовых интерактивных команд, чаще всего связанных с операционными системами Unix и Linux. Для вопросов о сценариях оболочки используйте более конкретные теги, такие как «bash», «powershell» или «ksh». Без специального тега следует предполагать переносимое (совместимое с POSIX) решение, хотя использование «posix» в дополнение или «sh» вместо этого предпочтительнее.