Liste des fichiers sur l'espace de travail sur un Pipeline Jenkins

Je suis en train de la liste des fichiers dans l'espace de travail dans un Jenkins Pipeline, afin que je puisse l'utiliser pour produire appropriée des tâches parallèles.

Alors que je pourrais simplement utiliser sh ls > files et de lire ça, je veux File objets dont je ne peux filtrer davantage à une logique plus complexe. En fait, Files.listFiles(FileFilter) serait l'idéal.

Cependant, je ne peux pas obtenir la liste des fichiers. Tout d'abord, j'ai dû recourir à un truc bizarre tout simplement de trouver le répertoire de travail en cours de construction:

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

Maintenant, j'appelle cela de récupérer la liste des fichiers:

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

Et obtenir un NPE sur asList, ce qui signifie, par ma lecture de la javadoc, qui new File(baseDir) n'existe pas (ou n'est pas un répertoire).

Je suis marquage il @NonCPS parce que c'est nécessaire pour groovy fermetures sur le Pipeline, qui j'aimerais vraiment préfèrent utiliser sur java <1.8 syntaxe.

il y a également pwd() pipeline func pour obtenir du répertoire courant.

OriginalL'auteur Daniel C. Sobral | 2016-07-31