如果跳过阶段,如何避免构建 docker 镜像?

Cla*_*jda 1 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'
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Hen*_*kow 5

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

when {
    beforeAgent true
    branch 'master'
}
Run Code Online (Sandbox Code Playgroud)

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