Liste der Dateien auf der Arbeitsfläche, die auf einem Jenkins-Pipeline

Ich versuche, die Liste der Dateien im Arbeitsbereich in einem Jenkins-Pipeline, so dass ich verwenden können, zu produzieren, entsprechende parallele Aufgaben.

Weile konnte ich einfach verwenden sh ls > files Lesen, ich will File Objekte, die ich filtern kann weiter mit komplexer Logik. In der Tat Files.listFiles(FileFilter) wäre ideal.

Jedoch kann ich nicht die Liste der Dateien an. Ich hatte zunächst zu greifen, um einige seltsame Sachen zu finden einfach heraus, das aktuelle Arbeitsverzeichnis für das bauen:

sh 'pwd > workspace'
workspace = readFile('workspace').trim()

Nun nenne ich diese abrufen die Liste der Dateien:

@NonCPS
def getFiles(String baseDir) {
    Arrays.asList(new File(baseDir).listFiles())
}

Und bekomme eine NPE auf asList, was bedeutet, durch mein Lesen der javadoc, dass new File(baseDir) existiert nicht (oder ist kein Verzeichnis).

Ich bin tagging es @NonCPS denn, es ist erforderlich für groovy-closures auf Pipeline, die würde ich wirklich lieber über die volle java <1.8 syntax.

  • auch gibt es pwd() pipeline func um aktuelle dir.
Schreibe einen Kommentar