Bootstrap

Jenkins pipeline中Json 处理的一个demo

import jenkins.model.*
import hudson.model.*
import hudson.slaves.*
import groovy.json.*
buildInfo = [:]
pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                script {
                    buildEnv='ubuntu-18.04,centos-7'
                    buildEnv.split(',').each { buildOS ->
                        buildInfo["${buildOS}"] = [:]
                        for(i=0;i<10;i++){
                           buildInfo["${buildOS}"]["job-${i}"] = "values---${i}"
                        }
                    }
                    echo "${buildInfo}"
                    echo "buildInfo in groovy: ${buildInfo}"
                    jsonString = JsonOutput.toJson(buildInfo)
                    echo "jsonString: ${jsonString}" 
                }

            }
        }
    }
}

输出结果为:

18:44:33  [Pipeline] Start of Pipeline
18:44:35  [Pipeline] node
18:44:37  Running on Jenkins in /var/jenkins_home/workspace/test
18:44:37  [Pipeline] {
18:44:42  [Pipeline] stage
18:44:42  [Pipeline] { (Hello)
18:44:49  [Pipeline] script
18:44:49  [Pipeline] {
18:44:54  [Pipeline] echo
18:44:54  [ubuntu-18.04:[job-0:values---0, job-1:values---1, job-2:values---2, job-3:values---3, job-4:values---4, job-5:values---5, job-6:values---6, job-7:values---7, job-8:values---8, job-9:values---9], centos-7:[job-0:values---0, job-1:values---1, job-2:values---2, job-3:values---3, job-4:values---4, job-5:values---5, job-6:values---6, job-7:values---7, job-8:values---8, job-9:values---9]]
18:44:54  [Pipeline] echo
18:44:54  buildInfo in groovy: [ubuntu-18.04:[job-0:values---0, job-1:values---1, job-2:values---2, job-3:values---3, job-4:values---4, job-5:values---5, job-6:values---6, job-7:values---7, job-8:values---8, job-9:values---9], centos-7:[job-0:values---0, job-1:values---1, job-2:values---2, job-3:values---3, job-4:values---4, job-5:values---5, job-6:values---6, job-7:values---7, job-8:values---8, job-9:values---9]]
18:44:54  [Pipeline] echo
18:44:54  jsonString: {"ubuntu-18.04":{"job-0":"values---0","job-1":"values---1","job-2":"values---2","job-3":"values---3","job-4":"values---4","job-5":"values---5","job-6":"values---6","job-7":"values---7","job-8":"values---8","job-9":"values---9"},"centos-7":{"job-0":"values---0","job-1":"values---1","job-2":"values---2","job-3":"values---3","job-4":"values---4","job-5":"values---5","job-6":"values---6","job-7":"values---7","job-8":"values---8","job-9":"values---9"}}
18:44:54  [Pipeline] }
18:44:55  [Pipeline] // script
18:44:56  [Pipeline] }
18:44:56  [Pipeline] // stage
18:44:57  [Pipeline] }
18:44:57  [Pipeline] // node
18:44:58  [Pipeline] End of Pipeline
18:44:58  Finished: SUCCESS
;