У меня есть карта данных, которую я извлек во время скрипта Groovy.На следующем этапе конвейера я хотел бы просмотреть данные и вставить переменные среды для использования.
Этот этап включает команду ant
, которая использует сборку xml для извлечения параметра ${env.appName}
среды.(см. пример XML ниже)
<project ...>
...
<entry ...value="${env.appName}/>
<entry ...value="${env.version}/>
...
</project>
Я просматриваю пару значений ключа карты.
pipeline {
agent any
stages{
stage ('Data') {
steps{
scripts {
def map = [app1: "01.01", app2: "02.02"]
}
}
}
stage ('Loop'){
steps {
withAnt(){
sh '''
{map.collect{ k,v -> "appName=${k} version=${v}"}}
ant -buildfile ~/build.xml
...
'''
}
}
}
}
}
Однако я получаю сообщение об ошибке:
line 3 : {map.collect{ k,v -> "appName=${k} version=${v}"}}: bad substitution.
Возможно ли зациклить карту в блоке sh
?Есть ли способ сделать это так, чтобы команда ant
выполнялась для каждого элемента карты?