我一直在尝试在Jenkins管道中进行简单的解析CSV。
我的CSV是一个简单的CSV,包括计算机名称,IP地址,子网掩码,默认网关及其主DNS服务器地址
所以
SystemName,IPAddress,Subnet,DefGate,DNS
server1,10.10.10.10,255.255.255.0,10.10.10.1,10.10.10.1
server2,10.10.10.11,255.255.255.0,10.10.10.1,10.10.10.1
等
我的脚本就是这样(基本上想要证明我可以读取csv按行拆分然后拆分,
上的每一行并逐行回显各个值):
stage('Parse the CSV') {
steps {
script {
dir ('FolderWhereCSVIsClonedFromGit') {
if (fileExists('MyCSV.csv')) {
echo ' MyCSV.csv found'
readFile("MyCSV.csv").eachLine { line, count ->
def fields = line.split(',')
for(String item: fields) {
println item
println ' you are parsing line : ' + count
}
nodes["line${count}"] = {
node {
echo fields[0] + ': ' + fields[1] + ': ' + fields[2] + ': ' + fields[3] + ': ' + fields[4];
}
}
}
} else {
echo ' Machines.csv Not found. Failing.'
}
...
每次代码运行时,它只返回第一行,虽然它被正确分割后,任何后续行都不会被解析并打印到控制台。
Jenkins安装是一个托管服务,虽然我可以安装额外的模块/插件,但不知道该问什么让我不知所措。
答案 0 :(得分:3)
答案 1 :(得分:1)
聚会晚了一点,但是对于以后的观看者来说,readCSV
使CSV的使用变得非常容易,因为它以矩阵形式返回它:
readCSV("/tmp/MyCSV.csv").each { line ->
line.each { field ->
// ...
}
}