Ошибка скрипта Groovy: java.io.NotSerializableException: com.xlson.groovycsv.CsvIterator - PullRequest
0 голосов
/ 10 июня 2019

У меня есть небольшой этап тестирования в скрипте Jenkins groovy для получения значений ветвления путем зацикливания в CSV-файл, это прекрасно работает, когда я не включаю HELM_REPO_BRANCH в цикл, но происходит сбой с java.io.NotSerializableException: com.Ошибка xlson.groovycsv.CsvIterator, если я пытаюсь получить значение из другой функции.Есть идеи, как ее решить?.

stage("Deploy missing Services to ${DEST_ENV}"){
sh 'echo NAME,VERSION >test.csv'
sh 'echo account,1.17.1 >>test.csv'
sh 'echo payment,1.6.9 >>test.csv'
def csv  = readFile 'test.csv'
def data = new CsvParser().parse(csv)
 for( line in data ) {
    def SERVICE_NAME = "$line.NAME"
    def SRC_VERSION = "$line.VERSION"
    def HELM_REPO_BRANCH = get_job_parameters()
    echo "$SERVICE_NAME"
    echo "$SRC_VERSION"
    echo "$HELM_REPO_BRANCH"
  }
 } 

def get_job_parameters() {  
BRANCH= readFile 'deployment_branch.txt'    
return BRANCH
}

1 Ответ

0 голосов
/ 10 июня 2019

Вы можете использовать readCSV (при условии, что этап уже запущен в контексте блока node):

stage("Deploy missing Services to ${DEST_ENV}") {
    writeFile file: 'test.csv', text: '''NAME,VERSION
account,1.17.1
payment,1.6.9'''
    def csv = readCSV(file: 'test.csv', format: CSVFormat.DEFAULT.withHeader())
    csv.each { record ->
        def SERVICE_NAME = record.get('NAME')
        def SERVICE_VERSION = record.get('VERSION')
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...