Jenkins 管道 - 保存到文件构建作业属性

问题描述 投票:0回答:1

请帮助我如何保存到文件构建作业属性 尝试以下方式,我在文件中得到以下文本: [slave:org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper@7fb29d4c]

def jobsResult      = [:]

pipeline {
    agent { label 'Apps' }
    
    stages {
        stage('Exec Job') 
            steps {
                script {
                    echo "Stage name is : ${STAGE_NAME}"
                    try {
                        jobsResult.job_01 = build job: "job_01", propagate: true, wait: true
                        jobsResult.job_02 = build job: "job_02", propagate: true, wait: true
                    }
                    catch (e) {
                        echo "Slave job failed, marking build as UNSTABLE"
                        currentBuild.result = 'UNSTABLE'
                    }
                    
                    writeFile file: "jobsResults.txt", text: "${jobsResult}"
                }
            }
        }
        stage('Sleep') {
            steps {
                script {
                    echo "Stage name is : ${STAGE_NAME}"
                    try {
                        sleep 10
                    } catch (Exception e) {
                        echo "Sleep stage failed, but continuing..."
                    }
                }
            }
        }
    }
}
jenkins jenkins-pipeline jenkins-groovy
1个回答
0
投票

使用时

writeFile file: "jobsResults.txt", text: "${jobsResult}"

jobsResult
代表的字符串写入文件,即
 [slave:org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper@7fb29d4c

您应该使用

writeJSON
来代替,它将把地图对象序列化为 JSON 并写入文件

writeJSON: "jobsResults.txt", json: jobsResult
© www.soinside.com 2019 - 2024. All rights reserved.