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

标签 jenkins jenkins-pipeline

如果我有一个 Jenkins 管道,它被限制在特定标签(例如label1)上执行,该标签有两个或三个机器/主机/节点(例如:host1,host2..)与它相连。假设我已经在 J​​enkinsfile 中进行了 buildlinttest 阶段,当作业触发并开始在主机/节点上执行作业时 主机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/

相关文章:

jenkins - 动态评估 Jenkinsfile 中的选择参数

jenkins - 在 Jenkinsfile 中触发远程构建(例如,从脚本)语法

docker - 在 Docker 容器中添加用户,运行 Jenkins 作业时 UID 不匹配

jenkins - 使用 Jenkins 凭证插件以纯文本形式显示密码

git - 执行 Jenkins Pipeline : Caused: java. io.NotSerializableException : groovy. json.internal.LazyMap 时出现异常

jenkins - 在测试失败或成功的情况下如何更改 Jenkins Pipeline Gitlab 状态?

jenkins - 从 jenkins shell 脚本运行 rsync

jenkins - 如何欺骗 Jenkins 认为所有分支都已经在多分支管道中运行?

java - Jenkins启动错误: jenkins. model.InvalidBuildsDir : does not contain ${ITEM_FULL_NAME} or ${ITEM_ROOTDIR},无法区分项目

maven-2 - 有没有办法根据 cron 规则安排 Jenkins 作业与不同版本的 Maven 一起运行?