是否保证Jenkins管道中的所有阶段都将在同一主机上执行?

时间:2019-03-28 12:46:46

标签: jenkins jenkins-pipeline

如果我的jenkins管道仅限于在具有两个或三个与之链接的机器/主机/节点(例如:host1,host2 ..)的特定标签(例如label1)上执行,它。说我已经在Jenkinsfile中的buildlinttest阶段,并且当作业触发并开始在主机/节点host1上执行作业时。是否可以确保jenkins将在作业的所有阶段(build,lint ..)在同一主机/节点host1上完成此作业?还是在阶段(build,lint ..)之间切换到其他主机/节点?

pipeline {

    agent {
       label 'label1'
    }


    stages {
       stage('build') {
           steps {
               sh('echo build')
           }
       }

       stage('lint') {
            steps {
               sh ('echo lint')
            }
       }

       stage('test') {
            steps {
               sh ('echo test')
            }
        }
    }
}

1 个答案:

答案 0 :(得分:5)

除非您在阶段中明确定义了不同的代理(可能),否则所有阶段都将在同一执行程序上运行。这是有道理的:如果您必须在每个阶段都声明代理以使其保持不变,那将是非常不便的开销。