Мне нужно написать CSV-файл из большого файла JSON на раба Дженкинса, используя Groovy. Ранее метод, который я использовал первым, запускался только на «Мастер», см. Ниже:
def file = new FilePath(channel, envVars['WORKSPACE'] + separator + 'FDCUtilities' + separator + 'GroovyTest' + separator + 'json.json')
def outPutCSV = envVars['WORKSPACE'] + separator + 'FDCUtilities' + separator + 'GroovyTest' + separator + 'test.csv'
def results = jsonSlurper.parseText(file.readToString())
def FILE_HEADER = ['ID','TEST NAME','TOTALLINES', 'TOTAL COVERED', 'COVERED %']
new File(outPutCSV).withWriter { fileWriter ->
csvFilePrinter = new CSVPrinter(fileWriter, CSVFormat.DEFAULT)
csvFilePrinter.printRecord(FILE_HEADER)
results.each{
csvFilePrinter.printRecord([it.id, it.name, it.totalLines, it.totalCovered, it.coveredPercent])
}
}
Видя, что мы больше не можем использовать файл и должны использовать 'FilePath', я не могу понять всю жизнь, как предыдущий csv-писатель с новым FilePath. Я думаю, что вы просто не можете, так как у меня возникают проблемы с поиском документации, где вы можете добавить файл с filepath или написать csv с ним. Я думал только о том, чтобы сделать строковое значение и назначить csv для файла записи, однако я не могу заставить его выглядеть так, как будто он выглядит правильно или работает.
Мой текущий код:
def jsonSlurper = new JsonSlurper()
// access the files on the current workspace regardless slave or master
def file = new FilePath(channel, envVars['WORKSPACE'] + separator + 'FDCUtilities' + separator + 'GroovyTest' + separator + 'json.json')
def outPutCSV = new FilePath(channel, envVars['WORKSPACE'] + separator + 'FDCUtilities' + separator + 'GroovyTest' + separator + 'test.csv')
def results = jsonSlurper.parseText(file.readToString())
test = "ID,TEST NAME,TOTAL LINES,TOTAL COVERED,COVERED %"
results.each {
test = test.concat(it.id, it.name, it.totalLines, it.totalCovered, it.coveredPercent, "\n")
}
outPutCSV.write(test ,null)
Я все еще учусь работать с Groovy и Jenkins, поэтому любая помощь будет принята с благодарностью!