詹金斯管道:访问上游工作的各个阶段的结果

时间:2019-02-21 13:40:45

标签: jenkins groovy jenkins-pipeline

我一直在搜索和阅读Jenkins Javadoc和Jenkins CI文档,但无法确认我想要的东西是否可行

我有一个管道,它只是通过SCM加载的常规脚本。在此管道中,我使用date_default_timezone_set('UTC');命令。作业build job: 'JobName'如下所示:

JobName

我想做的是知道groovy脚本中调用作业node('agent-complet') { def phase1Success = true def phase2Success = true def phase3Success = true // The success flags are set to true/false in the stages... stage('Phase1') { ... } stage('Phase2') { ... } stage('Phase3') { ... } } 的每个阶段的结果(成功/失败标志)。有直接的方法吗?

否则,我正在考虑也许先写入文件,然后在作业完成后再读取该文件。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用Extending Shared Libraries代替凹槽脚本。

然后您可以使用包含所有阶段的字典的类:

package your.packagename

class Example implements Serializable {
    def mysteps = [Stage1: false, Stage2: false, Stage3: false]
    def steps

    def Example(steps) {
        this.steps = steps
    }


    def run() {
        this.steps.stage("Stage1") {
            try {
                [run some commands]
                this.mysteps["Stage1"] = true
            } catch (Exception e) {
                this.mysteps["Stage1"] = false
            }
        }
    }

}

然后在您的Jenkins文件中

@Library('your-library-name')
import your.packagename.Example


def pl = new Example(steps)

node {
    pl.run()
    stage("Print results") {
       sh "Results ${pl.mysteps}"
    }
}