Tôi cần kiểm tra sự tồn tại của một tệp .exe nhất định trong không gian làm việc của tôi như một phần công việc xây dựng đường ống của tôi. Tôi đã cố gắng sử dụng kịch bản Groovy dưới đây từ Jenkinsfile của tôi để làm như vậy. Nhưng tôi nghĩ rằng lớp File mặc định cố gắng tìm thư mục workspace trên jenkins master và thất bại.Sử dụng FilePath để truy cập không gian làm việc trên slave trong đường ống Jenkins
@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
}
}
Làm cách nào để truy cập hệ thống tệp trên slave bằng Groovy từ bên trong Jenkinsfile?
Tôi cũng đã thử mã bên dưới. Nhưng tôi nhận được lỗi No such property: build for class: groovy.lang.Binding
. Tôi cũng đã cố gắng sử dụng đối tượng người quản lý thay thế. Nhưng nhận được cùng một lỗi.
@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
}
}
Đã lưu cuộc sống của tôi :) Cảm ơn !! –