如果我有一个 Jenkins 管道,它被限制在特定标签(例如label1
)上执行,该标签有两个或三个机器/主机/节点(例如:host1,host2..)与它相连。假设我已经在 Jenkinsfile 中进行了 build
、lint
和 test
阶段,当作业触发并开始在主机/节点上执行作业时 主机1
。是否保证 jenkins 将在同一主机/节点 host1
上完成此作业以及作业中的所有阶段(build、lint ..)?或者它确实在阶段之间切换到其他主机/节点(构建、lint ..)?
pipeline {
agent {
label 'label1'
}
stages {
stage('build') {
steps {
sh('echo build')
}
}
stage('lint') {
steps {
sh ('echo lint')
}
}
stage('test') {
steps {
sh ('echo test')
}
}
}
}
最佳答案
除非您在阶段中显式定义不同的代理(这是可能的),否则所有阶段都将在同一个执行器上运行。这是有道理的:如果您必须在每个阶段声明代理以保持相同,那将是一个非常不方便的开销。
关于jenkins - 是否保证 Jenkins 管道中的所有阶段都将在同一主机上执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55398028/