Muszę sprawdzić, czy istnieje określony plik .exe w moim obszarze roboczym jako część mojego zadania budowania potoku. Próbowałem użyć poniższego skryptu Groovy z mojego Jenkinsfile, aby zrobić to samo. Ale myślę, że klasa File domyślnie próbuje znaleźć katalog obszaru roboczego na mistrzu jenkins i nie powiedzie się.Używanie FilePath do uzyskiwania dostępu do obszaru roboczego na slave w potoku Jenkinsa
@com.cloudbees.groovy.cps.NonCPS
def checkJacoco(isJacocoEnabled) {
new File(pwd()).eachFileRecurse(FILES) { it ->
if (it.name == 'jacoco.exec' || it.name == 'Jacoco.exec')
isJacocoEnabled = true
}
}
Jak uzyskać dostęp do systemu plików na urządzeniu slave za pomocą Groovy z wnętrza Jenkinsfile?
Próbowałem również poniższy kod. Ale dostaję błąd No such property: build for class: groovy.lang.Binding
. Próbowałem też użyć obiektu menedżera. Ale dostaję ten sam błąd.
@com.cloudbees.groovy.cps.NonCPS
def checkJacoco(isJacocoEnabled) {
channel = build.workspace.channel
rootDirRemote = new FilePath(channel, pwd())
println "rootDirRemote::$rootDirRemote"
rootDirRemote.eachFileRecurse(FILES) { it ->
if (it.name == 'jacoco.exec' || it.name == 'Jacoco.exec') {
println "Jacoco Exists:: ${it.path}"
isJacocoEnabled = true
}
}
Uratowałem mi życie :) Dzięki! –