stage ('Create seed jobs') {
def additionalParams = [:]
additionalParams.put('folderName', 'IFE Products Seed Jobs')
node{
deleteDir()
unstash 'code'
//assume 'products' is a valid data structure.
products.IFE.Products.each { p ->
def jobName
p.Versions.Active.each { ar ->
echo "${p.Name} (${p.ShortName}) version ${ar.Version} is actively supported"
//set job name, description, display name according to product and version info.
additionalParams.put('jobName', "${p.ShortName}-${ar.Version}-seed-job")
additionalParams.put('jobDisplayName', " Seed Job for ${p.ShortName} ${ar.Version}")
echo "additionalParameters = ${additionalParams}"
jobDsl targets: "jenkins/seed/seed_ife_product_${p.ShortName.toLowerCase()}.groovy",
removedJobAction: 'DELETE'
additionalParameters: additionalParams
}
p.Versions.Deprecated.Unsupported.each {usp ->
echo "${p.Name} (${p.ShortName}) version ${usp} is unsupported"
}
p.Versions.Deprecated.Supported.each { sp ->
echo "${p.Name} (${p.ShortName}) version ${sp.Version} is passively supported until ${sp.EndDate}"
}
}
}
}
seed_ife_product_scr.groovy
folder(folderName)
pipelineJob("${folderName}/${jobName}") {
description('This seed job generates all the relevant jobs for onboarding, releasing and testing an IFE product depending on the chosen ENVIRONMENT and END_CLIENT')
displayName (jobDisplayName)
definition {
cpsScm {....
}
}
}