У меня есть jenkinsfile, который вызывает функцию из groovy:
jenkinsfile:
pipeline {
agent none
environment {
HOME = '.'
}
stages {
stage("initiating"){
agent {
docker {
image 'docker-image'
}
}
stages {
stage('scanning') {
steps {
script {
workloadPipeline = load("Pipeline.groovy")
workloadPipeline.loopImages1(Images)
}
}
}
}
}
}
}
groovy функции:
def loopImages1(Images){
Images.each { entry ->
parallel {
stage('test-' + entry.key) {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
script {
sh """
docker run -d $entry.value
"""
}
}
}
}
}
}
Images возвращает карту, примерно так:
image-1 : 123.dkr.ecr.eu-west-1.amazonaws.com....
image-2 : 123.dkr.ecr.eu-west-1.amazonaws.com....
image-3 : 123.dkr.ecr.eu-west-1.amazonaws.com....
И я пытался запустить его с помощью parallel , который в этом случае должен запускать 3 задания параллельно, но он дает мне следующее сообщение об ошибке:
java .lang.IllegalArgumentException: ожидаются именованные аргументы, но есть org.jenkinsci.plugins.workflow.cps. CpsClosure2@19027e83
Что мне нужно изменить, чтобы это работало? Судя по тому, что я прочитал, ему нужна карта в качестве входных данных, которую я уже даю.