我们有一系列的Jenkinsfile脚本,它们是相同的,除了每个脚本都配置了一个环境项,指向在SCM检出中包含Jenkinsfile的目录。这用于引用同一目录中的文件。 SCM存储库中有所有这些Jenkinsfile脚本位于不同的目录中。如果我只能检索包含Jenkinsfile的目录路径,那么我可以使每种情况下的流水线脚本相同。
我尝试过包含步骤的几件不同事物
我尝试过包含步骤的几件不同事物
script {
println __FILE__
}
和
script {
scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent
println scriptDir
}
这两个都没有运行(在__FILE__
的情况下给出不存在的变量,第二个情况则是权限问题)。我尝试了"${__FILE__}"
和其他变体。
我需要在步骤-sh块中使用目录,因此我认为它需要在环境项中。
现在,Jenkins作业配置提供了Jenkins文件的路径,但是我不想重复创建另一个环境变量。
已经咨询过:
- 获取由Job DSL处理的脚本目录的绝对路径
- 获取Jenkins管道插件中工作区目录的绝对路径
- 如何在管道中引用Jenkinsfile目录?
- 还有更多来自Google搜索和其他站点的内容。
谢谢您的帮助。