如何确保并行阶段使用前一阶段的工作区副本?

时间:2018-03-29 21:01:40

标签: jenkins jenkins-pipeline

我正在为跨平台应用程序编写管道。目标是有一个阶段从SCM中检出源代码,然后让一些从设备从该结账为每个平台构建应用程序。

以下是我所拥有的概述:

pipeline {
    agent none
    stages {
        stage('Checkout') {
            agent any
            steps {
                checkout([extensions: [[$class: 'CleanBeforeCheckout']], ...]]])
            }
        }
        stage('Build') {
            parallel {
                stage('win') {
                    agent { label 'win' }
                    steps { ... }
                }
                stage('mac') {
                    agent { label 'mac' }
                    steps { ... }
                }
            }
        }
    }
}

问题是并行阶段没有使用第一阶段的清理结账。他们只是重复使用上一版本中的工作区。

我将如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在结帐阶段存放工作区,然后在每个后续阶段取消暂存。

https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-unstash-code-restore-files-previously-stashed