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

cod*_*ter 2 jenkins jenkins-pipeline

如果我有一个jenkins管道,它只能在特定的标签(例如label1)上执行,该标签有两个或三个与之链接的机器/主机/节点(例如:host1,host2 ..)。说我buildlinttest在Jenkinsfile当阶段任务触发,并开始主机/节点上执行任务host1。是否可以保证jenkins将在工作的host1所有阶段(构建,皮棉..)在同一主机/节点上完成此工作?还是在阶段(构建,皮棉..)之间切换到其他主机/节点?

pipeline {

    agent {
       label 'label1'
    }


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

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

       stage('test') {
            steps {
               sh ('echo test')
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

len*_*ovi 5

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