You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins流水线任务成功后修改节点标签?

解决方案

要实现流水线成功后修改当前节点标签的需求,你可以通过Jenkins内置的Groovy API直接操作节点对象,修改并保存标签配置。修改后的完整流水线脚本如下:

pipeline {
    agent {
        label 'new-deployments'
    }
    stages {
        stage('main') {
            steps {
                sh "chmod +x -R ${env.WORKSPACE}"
                sh './deploy_script.sh'
            }
        }
    }
    post {
        success {
            script {
                // 获取当前构建运行的节点实例
                def targetNode = currentBuild.getBuiltOn()
                // 替换标签:移除旧标签,添加新标签
                def updatedLabels = targetNode.getLabelString().replace('new-deployments', 'ready-deployments')
                targetNode.setLabelString(updatedLabels)
                // 保存节点配置变更
                targetNode.save()
                echo "节点 ${targetNode.name} 标签已更新为: ${updatedLabels}"
            }
        }
    }
}

关键说明

  • 权限要求:运行该流水线的用户必须拥有Jenkins的Node/Configure权限(或更高权限如Overall/Administer),否则会抛出权限不足的错误。
  • 脚本安全审批:如果你的Jenkins开启了「脚本安全」模式,这段操作节点的Groovy代码需要先通过Jenkins管理员的脚本审批,才能正常执行。
  • 标签替换逻辑:replace方法会替换标签字符串中第一个匹配的旧标签,如果节点有多个标签且旧标签出现多次,建议用拆分标签列表后过滤重组的方式处理,避免遗漏。

内容的提问来源于stack exchange,提问作者Snir Sofer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:22:10