“Jenkins”在v之后缺少节点标签“master”,2.307+升级

wswtfjt7  于 2023-08-03  发布在  Jenkins
关注(0)|答案(3)|浏览(182)

在升级到2.307并应用术语更改(从“master”到“Built-In Node”)后,我的构建停止工作,并出现以下错误消息:'Jenkins'没有标签'master'
我的Jenkinsfile看起来像这样:

node('master') {
    dir('build') {
        stage('Checkout') {
            ...
        }
    }
}

字符串

iibxawm4

iibxawm41#

升级时阅读更新日志会有帮助。您也可以在Jenkins中查找该节点。

  • 将术语“master”替换为“controller”(针对主Jenkins应用)或“built-in node”(根据需要)。(pull 5425
  • 添加迁移代码以仅更改节点名称(例如NODE_NAME环境变量)和管理员显式迁移后内置节点的标签。新安装会立即获得新节点和标签。(pull 5425
  • 添加系统属性jenkins.model.Jenkins.nodeNameAndSelfLabelOverride,为内置节点指定不同的节点名称和标签(例如对于作为代码的配置用例)。这不会影响节点名的其他用途,例如内置节点(现在为/computer/(built-in)/)的URL。(pull 5425
    说明:

如果您的作业定义、管道定义或工具安装程序引用必须绑定到内置节点,则应使用标签“built-in”而不是“master”。使用内置(以前的master)节点的是strongly discouraged
新的Nodes url(如下所示)为:${JENKINS_URL}/computer/(built-in)/而不是${JENKINS_URL}/computer/(master)/
x1c 0d1x的数据

备选方案:可以在built-in节点上添加master作为标签,继续现有配置。


ulydmbyx

ulydmbyx2#

如果希望管道与最新版本和旧版本兼容,可以使用标签表达式,如master || built-in

示例

  • 脚本管道
node('master || built-in') {
    // ...
}

字符串
参考:https://www.jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#node-allocate-node

  • 声明性管道
pipeline {
    agent {
        label 'master || built-in'
    }
    // ...
}


参考:https://www.jenkins.io/doc/book/pipeline/syntax/#agent

  • 作业DSL
job('example') {
    label('master || built-in')
    // ...
}


参考:https://jenkinsci.github.io/job-dsl-plugin/#path/javaposse.jobdsl.dsl.DslFactory.job-label

7nbnzgx9

7nbnzgx93#

如果您只有一个节点或者不关心在哪个节点上运行构建,您可以删除特定的节点名称:

node {
    dir('build') {
        stage('Checkout') {
            ...
        }
    }
}

字符串
否则,您可以转到Dashboard -> Manage Jenkins -> Manage Nodes and Clouds,然后当您将鼠标悬停在节点名称上时按下向下箭头并按下Configure。在这里,你可以添加一个标签,然后在你的Jenkinsfile中使用,如上所述。

相关问题