Jenkins管道脚本中的当前工作目录

时间:2020-06-09 12:10:26

标签: jenkins jenkins-pipeline jenkins-groovy

我想从Windows Jenkins节点到Linux服务器执行SCP。在此设置中,Windows计算机是Jenkins从属服务器,我要复制的目标服务器是Linux。

下面是我的詹金斯管道脚本

stage('SCP JAR file') {
steps {
         bat 'scp c:\\Jenkins\\workspace\\migration\\test-project\\build\\libs\\ssupservice-0.0.1-SNAPSHOT.jar rxp096p@server:/home/rxp096p/testing'
      }
 }
}

上面的脚本可以工作,但是我们需要使用$ {env.WORKSPACE},因为当前目录可能会更改。所以我在下面尝试了

bat 'scp ${env.WORKSPACE}\\build\\libs\\ssupservice-0.0.1-SNAPSHOT.jar 
  rxp096p@server:/home/rxp096p/testing'

但是它给我错误$ {env.WORKSPACE} /build/libs/ssupservice-0.0.1-SNAPSHOT.jar没有这样的文件或目录。

1 个答案:

答案 0 :(得分:1)

bat命令之后使用的单引号似乎没有插值Jenkins环境变量(env.WORKSPACE)。

请更改

bat 'scp ${env.WORKSPACE}\\build\\libs\\ssupservice-0.0.1-SNAPSHOT.jar rxp096p@server:/home/rxp096p/testing'

bat "scp ${env.WORKSPACE}\\build\\libs\\ssupservice-0.0.1-SNAPSHOT.jar rxp096p@server:/home/rxp096p/testing"