I need to check for the existence of a certain .exe file in my workspace as 
part of my pipeline build job. I tried to use the below Groovy script from 
my Jenkinsfile to do the same. But I think the File class by default tries 
to look for the workspace directory on jenkins master and fails.

@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
}
}

How to access the file system on slave using Groovy from inside the 
Jenkinsfile? 

I also tried the below code. But I am getting No such property: build for 
class: groovy.lang.Binding error.  I also tried to use the manager object 
instead. But get the same error.

@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 
} 
}

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/2b1f6b39-a429-4ea4-ab81-d532561e7065%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to