Разбить переменную Дженкинса и вызвать несколько заданий - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно очистить некоторые пространства имен Kubernete (hello_namespace, second, my_namespace1, my_namespace45, my_namespace44, например, и я делаю это с заданием jenkins. Я читаю с kubectl пространство имен, которое мне нужно очистить, а затем я хочу запуститьзадание на его удаление. Мой код должен выглядеть примерно так:

    pipeline {
    agent { label 'master' }
    stages {

        stage('Clean e2e') {

            steps {
                script {
                 sh  "kubectl get namespace |egrep 'my_namespace[0-9]+'|cut -f1 -d ' '>result.txt"
                 def output=readFile('result.txt').trim()
                }
            }
    }

Выход этого кода будет представлять собой переменную $ output со значениями: my_namespace1 my_namespace45 my_namespace44 Разделенные строкой, теперь я хочу запустить заданиес параметром, подобным пространству имен, как я могу это сделать? (Моя проблема - прочитать файл и запустить независимое задание для каждого пространства имен) while (output.nextLine () callJob) Вызов задания должен быть похож на

build job: 'Delete temp Stage', parameters:
                    [string(name: 'Stage', value: "${env.stage_name}")]

1 Ответ

0 голосов
/ 06 июня 2018

Я уже получил это:)

    #!groovy
pipeline {
    agent { label 'master' }

    stages {
        stage('Clean up stages') {

            steps {
                script {
                    sh '(kubectl get namespace |egrep "namespace[0-9]+"|cut -f1 -d " "|while read i;do echo -n $i";" ; done;)>result.txt'
                    def stages = readFile('result.txt').trim().split(';')
                    for (stage in stages) {
                        if (stage?.trim()) {
                             echo "deleting stage: $stage"
                            build job: 'Delete temp Stage', parameters:
                                    [string(name: 'Stage', value: "$stage")]
                            }
                       }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...