如果我的jenkins管道仅限于在具有两个或三个与之链接的机器/主机/节点(例如:host1,host2 ..)的特定标签(例如label1
)上执行,它。说我已经在Jenkinsfile中的build
,lint
和test
阶段,并且当作业触发并开始在主机/节点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')
}
}
}
}
答案 0 :(得分:5)
除非您在阶段中明确定义了不同的代理(可能),否则所有阶段都将在同一执行程序上运行。这是有道理的:如果您必须在每个阶段都声明代理以使其保持不变,那将是非常不便的开销。