2017-11-02 2 views
0

Ich habe versucht, eine einfache CSV-Analyse in einer Jenkins-Pipeline zu tun.Jenkins-Pipeline, analysieren csv

Mein CSV ist eine einfacher, bestehend aus einem Maschinennamen, die IP-Adresse, die Subnetz-Maske, Standard-Gateway und seine primären DNS-Server-Adresse

so

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 

usw.

Mein Skript ist nur das (im Grunde will ich beweisen, dass ich den CSV lesen kann, teilen Sie es Zeile für Zeile dann teilen Sie jede Zeile auf der , und echo die einzelnen Werte Zeile für Zeile Basis):

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.' 
        } 

...

Jedes Mal, wenn der Code ausgeführt wird es nur die erste Zeile zurück, obwohl es korrekt alle nachfolgenden Zeilen aufgeteilt ist, werden an die Konsole nicht analysiert und gedruckt.

Die Jenkins-Installation ist ein Managed Service, obwohl ich zusätzliche Module/Plugins installieren kann, ist es das nicht zu wissen, was zu fragen, was mich wirft.

Antwort

1

Dies ist ein bekannter Fehler: JENKINS-46988

Sie können wie folgt aus, um dieses Problem zu umgehen:

readFile("/tmp/MyCSV.csv").split('\n').each { line, count -> 
Verwandte Themen