首页 > 解决方案 > Jenkins Pipeline - 在循环内并行触发作业

问题描述

我有一个 Jenkins 管道,我需要在其中选择不同的参数。参数选择也可能因版本而异,有时需要选择1,有时需要选择多个选项。如何循环构建应用程序?这是我的 Jenkinsfile,我将在其中选择要构建的 coreapp 和应用程序。这是詹金斯文件

    #!/usr/bin/env groovy
List core_apps = ["\"Select:selected\"","\"app1\"","\"app2\""]
List appstobuild = ["\"Select:selected\"","\"a\"","\"b\"","\"c\""]
List default_item = ["\"Not Applicable\""]
String categories = buildScript(core_apps)
String appstobuild = buildScript(appstobuild)
String items = populateItems(default_item,appstobuild)
String buildScript(List values){
  return "return $values"
}
String populateItems(List default_item, List appstobuild){
return """if(Categories.equals('appstobuild')){
     return $appstobuild
     }
     else{
     return $default_item
     }
     """
}
properties([
    parameters([
        [$class: 'ChoiceParameter', choiceType: 'PT_SINGLE_SELECT', name: 'Categories', script: [$class: 'GroovyScript', fallbackScript: [classpath: [], sandbox: false, script: 'return ["ERROR"]'], script: [classpath: [], sandbox: false,
        script:  categories]]],
[$class: 'CascadeChoiceParameter', choiceType: 'PT_CHECKBOX', name: 'Items', referencedParameters: 'Categories', script: [$class: 'GroovyScript', fallbackScript: [classpath: [], sandbox: false, script: 'return ["error"]'], script: [classpath: [], sandbox: false, script: items]]]
    ])
])
pipeline {
    agent any
stages {
   stage('Build'){
    steps {
       echo 'Building..'
      }
    }
   }
}

标签: jenkinsjenkins-pipelinejenkins-groovy

解决方案


推荐阅读