У меня есть файл jenkins с декларативным конвейером. Я пытаюсь получить имена изображений ECR из config.yml, поместить их в карту и распечатать их с помощью al oop в Jenkins. Вот что я сделал до сих пор:
config.yml:
images:
- "123.dkr.ecr.eu-west-1.amazonaws.com/image-1:latest"
- "123.dkr.ecr.eu-west-1.amazonaws.com/image-2:latest"
- "456.dkr.ecr.eu-west-1.amazonaws.com/image-9:latest"
jenkinsfile:
def account_info = readYaml file: "config.yml"
def image_info = "${account_info.images}"
def map = [
("image") : "${image_info}"
]
pipeline {
stages {
stage('tests') {
steps {
loopImages(map)
}
}
}
}
def loopImages(map){
map.each { entry ->
stage('test-' + entry.key) {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
script {
sh """
echo "${image_info}"
"""
}
}
}
}
}
Wanted чтобы узнать, если вы порекомендуете мне сделать это по-другому? Я новичок в Jenkins и не знаю, как получить переменные из yaml и поместить их в карту.
При таком способе я получаю следующую ошибку:
Required context class hudson.FilePath is missing
Моя цель - иметь такую карту:
def map = [
("image") : "123.dkr.ecr.eu-west-1.amazonaws.com/image-1:latest"
("image") : "123.dkr.ecr.eu-west-1.amazonaws.com/image-2:latest"
("image") : "456.dkr.ecr.eu-west-1.amazonaws.com/image-9:latest"
]