Дженкинс, Как получить всех агентов с определенным лейблом и запустить для них один и тот же этап - PullRequest
0 голосов
/ 05 августа 2020

У меня есть конвейер, и в сценарии конвейера я хотел бы найти всех агентов с определенной меткой и запустить этапы для каждого из них. В этом случае внутри 'Clean docker' я использую sh для перебора всех агентов с помощью «specificLabel» для запуска docker prune

В настоящее время это то, что у меня есть

def generateStage(nodeLabel){
    stage("${nodeLabel}: Docker prune all}") {
        agent {
            label nodeLabel
        }
        steps {
            withCredentials([string(credentialsId: 'user_pwd', variable: 'USERPWD')]) {
                sh 'docker system prune -a -f'
                sh "echo $USERPWD | sudo -S systemctl restart docker.service"
            }
        }
    }
}

pipeline {
    agent any
    options {
        timeout(time: 30, unit: 'MINUTES')
    }
    stages {
        stage('Clean docker') {
            steps {
                script {
                    nodeLabels = nodesByLabel(label: 'prunedebug')
                    for (nodeLabel in nodeLabels) {
                        generateStage(nodeLabel)
                    }
                }
            }
        }
    }
}

Но я получил No such DSL method 'agent' found among steps ошибку. Посоветуйте, пожалуйста, как это изменить?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...