gpt4 book ai didi

Jenkins 声明式管道 - 如何获取正在使用的 Jenkinsfile 的路径?

转载 作者:行者123 更新时间:2023-12-04 12:56:55 33 4
gpt4 key购买 nike

我们有一系列相同的 Jenkinsfile 脚本,除了每个脚本配置一个环境项以指向保存 Jenkinsfile 的 SCM checkout 中的目录。那用于引用同一目录中的文件。 SCM 存储库在不同目录中包含所有这些 Jenkinsfile 脚本。如果我只能检索包含 Jenkinsfile 的目录的路径,我会看到一个简单的打开方式,可以使管道脚本在每种情况下都相同。

我尝试了几种不同的东西,例如包含的步骤

script {
println __FILE__
}


script { 
scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent
println scriptDir
}

两者都没有运行(在 __FILE__ 案例中给出了不存在的变量,在第二种情况下给出了权限违规)。我试过 "${__FILE__}"和其他变体。

我需要在 steps-sh 块中使用该目录,所以我相信它需要在一个环境项中。

现在,Jenkins 作业配置提供了 Jenkins 文件的路径,但我不想重复该操作以在该级别创建另一个环境变量。

已经咨询过:
  • Get absolute path of the script directory that is being processed by Job DSL
  • Get absolute path to workspace directory in Jenkins Pipeline plugin
  • How can I reference the Jenkinsfile directory, with Pipeline?
  • 以及更多的谷歌点击和其他网站。

  • 帮助表示赞赏。

    最佳答案

    位于 another thread :

    def currentScriptPath = new File(currentBuild.rawBuild.parent.definition.scriptPath).parent

    但它需要批准很多方法。

    关于Jenkins 声明式管道 - 如何获取正在使用的 Jenkinsfile 的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51370984/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com