获取 Job DSL 正在处理的脚本目录的绝对路径
Get absolute path of the script directory that is being processed by Job DSL
我有一个定义管道作业的 DSL groovy 脚本。我需要从工作区加载 Jenkinsfile。 Jenkinsfile 与 groovy 脚本位于同一文件夹中。我正在尝试以编程方式获取 groovy 脚本的路径,以便我可以使用它来计算 Jenkinsfile 的路径并使用 readFileFromWorkspace
加载它。在完成 job-dsl-wiki 后,我尝试使用 __FILE__
指令。但是我收到以下错误:
Processing provided DSL script
ERROR: (test_job.groovy, line 3) No such property: absolutePath for class: java.lang.String
Finished: FAILURE
这是我的 DSL 脚本
job_name = "my-pipeline-job"
job_path = "${new File(__FILE__).parent.absolutePath}"
jenkinsfile = job_path + "/Jenkinsfile"
pipelineJob(job_name){
description("Jenkins pipeline job")
parameters{
stringParam("MyTestParam", "", "a sample parameter")
}
definition {
cps {
sandbox()
script(readFileFromWorkspace(jenkinsfile))
}
}
}
我这里有什么地方做错了吗?非常感谢对此的任何帮助。
wiki 中的文档有点误导。这是工作解决方案。
job_name = "my-pipeline-job"
println "Script: ${ __FILE__}"
println("script directory: ${new File(__FILE__).parent}")
job_path = "${new File(__FILE__).parent}"
jenkinsfile = job_path + "/Jenkinsfile"
pipelineJob(job_name){
description("Jenkins pipeline job")
parameters{
stringParam("MyTestParam", "", "a sample parameter")
}
definition {
cps {
sandbox()
script(readFileFromWorkspace(jenkinsfile))
}
}
}
我有一个定义管道作业的 DSL groovy 脚本。我需要从工作区加载 Jenkinsfile。 Jenkinsfile 与 groovy 脚本位于同一文件夹中。我正在尝试以编程方式获取 groovy 脚本的路径,以便我可以使用它来计算 Jenkinsfile 的路径并使用 readFileFromWorkspace
加载它。在完成 job-dsl-wiki 后,我尝试使用 __FILE__
指令。但是我收到以下错误:
Processing provided DSL script
ERROR: (test_job.groovy, line 3) No such property: absolutePath for class: java.lang.String
Finished: FAILURE
这是我的 DSL 脚本
job_name = "my-pipeline-job"
job_path = "${new File(__FILE__).parent.absolutePath}"
jenkinsfile = job_path + "/Jenkinsfile"
pipelineJob(job_name){
description("Jenkins pipeline job")
parameters{
stringParam("MyTestParam", "", "a sample parameter")
}
definition {
cps {
sandbox()
script(readFileFromWorkspace(jenkinsfile))
}
}
}
我这里有什么地方做错了吗?非常感谢对此的任何帮助。
wiki 中的文档有点误导。这是工作解决方案。
job_name = "my-pipeline-job"
println "Script: ${ __FILE__}"
println("script directory: ${new File(__FILE__).parent}")
job_path = "${new File(__FILE__).parent}"
jenkinsfile = job_path + "/Jenkinsfile"
pipelineJob(job_name){
description("Jenkins pipeline job")
parameters{
stringParam("MyTestParam", "", "a sample parameter")
}
definition {
cps {
sandbox()
script(readFileFromWorkspace(jenkinsfile))
}
}
}