当前位置: 首页 > 面试题库 >

获取作业DSL处理的脚本目录的绝对路径

仲阳朔
2023-03-14
问题内容

我有一个定义管道作业的DSL
groovy脚本。我需要从工作区加载Jenkinsfile。Jenkinsfile与groovy脚本位于同一文件夹中。我正在尝试以编程方式获取groovy脚本的路径,以便可以使用它来找出Jenkinsfile的路径并使用加载它readFileFromWorkspace__FILE__在经历job-
dsl-wiki
之后,我尝试使用指令。但是我收到以下错误:

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


 类似资料:
  • 本文向大家介绍Shell中获取脚本所在目录绝对路径的方法,包括了Shell中获取脚本所在目录绝对路径的方法的使用技巧和注意事项,需要的朋友参考一下 要得到正在执行的程序/脚本自身所存放的绝对路径,在 PHP 里面可以用 dirname(realpath(__FILE__)) ; C# 则有 System.Windows.Forms.Application.StartupPath ; java 似乎

  • 问题内容: 我搜索了很多内容,并获得了很多不同的解决方案和包含信息的变量来获取绝对路径。但是它们似乎在某些条件下工作,而不在其他条件下工作。有没有一种方法可以获取PHP中已执行脚本的绝对路径?对我来说,该脚本将从命令行运行,但是,如果在Apache等内部运行,则解决方案也应起作用。 说明:最初执行的脚本,不一定是解决方案的编码文件。 问题答案: 正确的解决方案是使用以下功能: 这将为您提供初始脚本

  • 本文向大家介绍JS获取当前脚本文件的绝对路径,包括了JS获取当前脚本文件的绝对路径的使用技巧和注意事项,需要的朋友参考一下  当写模块加载器时,获取当前脚本文件的绝对路径作为基础路径是必不可少的一步,下面我们一起来探讨一下这个问题吧! 一、各大浏览器的实现方式                  [a]. Chrome和FF  超简单的一句足矣! 这里利用了对象 document.currentSc

  • 问题内容: 我正在尝试在当前包外部的路径中运行exe文件。我运行它的code.java文件在 但是exe所在的目录 如果可能的话,似乎最好的解决方案是获取Project的绝对路径,然后在其中添加“ src \ main \ resources \”。有什么好方法吗?或者有替代的解决方案?我正在使用Eclipse,但如果也可以在其他IDE中使用它,那就太好了。谢谢你的帮助。 问题答案: 解决此问题的

  • 本文向大家介绍获取Java中目录或文件的绝对路径,包括了获取Java中目录或文件的绝对路径的使用技巧和注意事项,需要的朋友参考一下 方法java.io.File.getAbsolutePath()用于获取字符串形式的文件或目录的绝对路径名。此方法不需要任何参数。 演示此的程序如下所示- 示例 上面程序的输出如下- 输出结果 现在让我们了解上面的程序。 使用方法java.io.File.getAbs

  • 问题内容: 我目前正在对Jenkins Pipeline插件(以前称为Workflow插件)进行一些评估。阅读文档后,我发现当前无法使用以下方法检索工作空间路径 : 以下变量当前在工作流脚本中不可用: NODE_LABELS 工作空间 特定于SCM的变量,例如SVN_REVISION 还有其他方法如何获取当前工作空间的绝对路径吗?我需要运行一些测试,该测试又得到一些参数(某些可执行文件的绝对路径)