代码之家  ›  专栏  ›  技术社区  ›  Datz

在执行Jenkinsfile时,如何获取管道配置字段“Script Path”?

  •  5
  • Datz  · 技术社区  · 6 年前

    如何从Jenkins文件(groovy)中获取Jenkins中管道配置字段“Script Path”的内容?

    enter image description here

    在本例中:我想在执行Jenkinsfile本身时获取字符串“Apps/mq logger/Jenkinsfile”。

    3 回复  |  直到 6 年前
        1
  •  5
  •   Vitalii Vitrenko    6 年前

    您可以通过这种方式获得脚本路径

    def scriptPath = currentBuild.rawBuild.parent.definition.scriptPath
    

    请注意,您必须 approve 所有这些方法。

        2
  •  1
  •   Sagar    6 年前

    如果希望在生成期间自定义此字符串,可以按如下方式创建参数化生成:

    parameterized build

    当您希望通过${FileParameter}在管道脚本中访问此项时,如下所示:

    pipeline {
     stages {
            stage('Perform verification') {
                steps {
                    script {
                       echo "${FileParameter}"
                    }
                }
            }
     }
    

    如果您不希望它是可定制的,那么您可以使用全局变量。但如果您的目标只是获取字符串形式 Script Path ,则必须使用 @Vitalii Vitrenko 使用答案:

    def scriptPath = currentBuild.rawBuild.parent.definition.scriptPath

    并批准必要的权限

        3
  •  0
  •   Antonio Petricca    4 年前

    以下是我的工作替代解决方案:

    def currentAbsoluteDir = sh(returnStdout: true, script: "pwd")
    
    if (currentAbsoluteDir) {
      currentAbsoluteDir = currentAbsoluteDir.replaceAll("\\n", "");
    }