如果跳过阶段,Avoind构建docker镜像

时间:2018-03-23 16:27:49

标签: jenkins jenkins-pipeline

我的管道有条件,在这种情况下,仅当分支为Node时才运行master阶段。我的问题是,即使跳过阶段,node:8图像也会被docker拉出。有没有办法避免这种情况?

pipeline {
    agent any

    stages {
        stage('Node') {
            agent {
                docker { image 'node:8' }
            }
            when {
                branch 'master'
            }
            steps {
                sh 'node -v'
            }
        }
        stage('Maven') {
            agent {
                docker { image 'maven:3' }
            }
            steps {
                sh 'mvn -v'
            }

        }
    }
}

1 个答案:

答案 0 :(得分:1)

在代理上评估when条件。这就是拉动图像的原因。但是,您可以使用beforeAgent选项更改此行为:

when {
    beforeAgent true
    branch 'master'
}

这将导致在进入代理之前评估when语句,并且应该避免拉动图像。