Jenkins不能完全解析变量值

时间:2019-07-23 17:37:12

标签: jenkins jenkins-pipeline jenkins-groovy

我有一个Jenkinsfile,我想在其中声明一些变量以供以后在其他部分中使用。我知道Jenkins使用Groovy语法规则进行变量扩展,但是我希望某些变量值可以完全解析。相反,我发现他们只是解决了一个问题。下面包含的代码显示了我想要的内容:尝试使用$ PATHTOFILES变量链接在先前阶段为Docker容器下载/生成的数据。而是将变量解析为pwd

到目前为止,我尝试了几种尝试来扩展我需要的值的方法,但是没有成功。

  agent none
  environment {
     ...
     PATHTOFILES = "`pwd`"
     ...
  }
  ...
  stage('Unit'){
     agent {
        docker {
           image "${DOCKERIMAGEURI}"
           args '-v $PATHTOFILES:$CONTAINER_DATA_PATH'
        }
     }
  }

Logs show that a value '-v `pwd`:/some/valid/path' is used as argument, leading to an error. Any ideas?

1 个答案:

答案 0 :(得分:0)

获取当前工作空间的操作有误。以下3种方法之一应该起作用:

1) use shell cmd: pwd and pipeline step: sh() together 
PATHTOFILES = sh(script: 'pwd', returnStdout:true).trim()

2) use pipeline step: pwd()
PATHTOFILES = pwd()

3) use environment variable: WORKSPACE
PATHTOFILES = env.WORKSPACE