首页 > 解决方案 > Jenkins 流水线脚本中的当前工作目录

问题描述

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

下面是我的 Jenkins 流水线脚本

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 no such file or directory。

标签: jenkinsjenkins-pipelinejenkins-groovy

解决方案


似乎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"

推荐阅读