How to get a list of all Jenkins nodes assigned with label including master node?

后端 未结 6 1330
囚心锁ツ
囚心锁ツ 2021-02-18 21:25

I\'m creating a Jenkins pipeline job and I need to run a job on all nodes labelled with a certain label.

Therefore I\'m trying to get a list of node names assigned with

6条回答
  •  野趣味
    野趣味 (楼主)
    2021-02-18 21:59

    Update to @patrick-b answer : contains can be buggy if you have labels containing same string, I've added a split step do check every label separated with spaces.

    @NonCPS
    def hostNames(label) {
        def nodes = []
        jenkins.model.Jenkins.get.computers.each { c ->
            c.node.labelString.split(/\s+/).each { l ->
                if (l != null && l.equals(label)) {
                    nodes.add(c.node.selfLabel.name)
                 }
            }
        }
    
        return nodes
    }
    

提交回复
热议问题