jenkins pipeline将字符串转换成数组

在使用jenkins的过程中需要参数化构建,而参数化构建会生成变量供pipeline步骤构建使用。

项目需要同时构建多个应用,如下图勾选指定应用部署执行项目

pipeline内容

node('master') {
    stage('构建server') {
        echo "${server}"
    }
}

选择3个应用构建后日志输入如下

如果我们使用for循环处理则显示如下

pipeline如下

node('master') {
    stage('构建server') {
        echo "${server}"
        for (job in server){
            echo "${job}"
        }
    }
}

构建结果如下,可以看到所有的参数都被当作字符串循环处理了

这个时候就需要把字符串转换成数组形式,groovy中使用split()方法分割字符串并返回数组形式

完整pipeline如下

循环获取到的参数,使用for循环构建选中的项目

node('master') {
    stage('构建server') {
        echo "${server}"
        def sampleText =server.split(',')
        for(String i in sampleText) {
            println(i);
            build job: i
        }
    }
}

最后查看日志可以看到选中的项目都被构建了。

发表回复