Не удается создать динамические этапы в конвейере jenkins при выполнении первого цикла? - PullRequest
0 голосов
/ 01 ноября 2019

Это конвейер, который я создал для обработки json из API. Однако, когда я запускаю его, он завершается ошибкой после первого цикла.

import groovy.json.JsonSlurper
pipeline {
agent none

stages {
    stage('Query Pull Requests'){
        steps{
            script {
                def response =  httpRequest authentication: 'BitbucketAuth', url: "https://api.bitbucket.org/2.0/repositories/repo-name/pullrequests"
                echo "Status: ${response.status}"
                def json = new JsonSlurper().parseText(content)
                def pullrequests = json.values;
                for (int i = 0; i < pullrequests.size(); i++) {
                    stage("Processing Pull Request ID : ${pullrequests[i].id}"){
                        echo "${pullrequests[i].source.branch.name}"
                        echo "${pullrequests[i].destination.branch.name}"
                        echo "${pullrequests[i].destination.repository.full_name}"
                    }
                }
            }
        }
    }
  }
}

Это ошибка, которую я получаю

Jenkins ver. 2,107

1 Ответ

1 голос
/ 01 ноября 2019

Вы должны сбросить переменную " json " в ноль, если вам больше не нужна эта переменная: -

def json = new JsonSlurper().parseText(content)
def pullrequests = json.values;
for (int i = 0; i < pullrequests.size(); i++) {
  stage("Processing Pull Request ID : ${pullrequests[i].id}"){
  echo "${pullrequests[i].source.branch.name}"
  echo "${pullrequests[i].destination.branch.name}"
  echo "${pullrequests[i].destination.repository.full_name}"
}

// unset response because it's not serializable and Jenkins throws NotSerializableException.
json = null

Для получения дополнительной информации перейдите по этой ссылке

...