我有一个groovy脚本,其中的对象在我的Jenkins脚本窗口中运行。此脚本引用我的Jenkins实例并创建新的Jenkins分支作业。
该脚本在Jenkins脚本窗口中运行。现在我需要使用Jenkins Gradle插件来执行脚本。 groovy插件有效,但正如我所说,要求是通过gradle插件完成此任务。
我已经尝试过Gradle任务类型JavaExec,它会分配一个新的JVM,但我无法访问我的Jenkins实例。我也尝试了Groovy evaluate(File file)
方法,但是Jenkins类的类路径引用丢失了。
// FAILS: forks a new JVM that does not have access to Jenkins object graph
task runCreateBranchJobs(type: JavaExec) {
description 'Create Branch Jobs in Jenkins'
main = 'createBranchJobs'
classpath = sourceSets.main.runtimeClasspath
}
// FAILS: has no knowledge of Jenkins classes, even when evaluated in Jenkins job
task runCreateBranchJobsInSameProcess {
doLast {
evaluate(new File("${projectDir}/src/main/groovy/createBranchJobs.groovy"))
}
}
关于如何在使用gradle插件成功传递类路径的情况下在Jenkins Job的上下文中运行groovy脚本的任何建议?