Obecnie potrzebuję implementacji, która musi znaleźć wszystkie pliki w katalogu i uruchomić równoległe zadanie dla każdego znalezionego pliku.
Czy można to osiągnąć za pomocą deklaratywnych potoków?
pipeline {
agent any
stages {
stage("test") {
steps {
dir ("file_path") {
// find all files with complete path
parallel (
// execute parallel tasks for each file found.
// this must be dynamic
}
}
}
}
}
}
}
jenkins
jenkinsfile
thclpr
źródło
źródło
Odpowiedzi:
Udało się go rozwiązać za pomocą następującego kodu:
źródło
Działa to również, jeśli chcesz pozostać w
Declarative Pipeline
przestrzeniźródło
node {}
bloku, w ten sposób:tests[f] = { node { echo f.toString() } }
Jest to o wiele łatwiejsze do użycia skryptuowych potoków, ponieważ możesz użyć dowolnego Groovy, ale nadal powinieneś być w stanie to zrobić z deklaratywnymi potokami za pomocą tego
findFiles
kroku.źródło
Należy pamiętać, że kroki kompilacji dynamicznej mogą powodować pewne problemy na niektórych etapach kompilacji, np. Podczas wywoływania innego zadania:
źródło