首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jenkins-Pipeline中,如何使用sshPut复制文件夹的内容,而不是文件夹本身?

在Jenkins-Pipeline中,如何使用sshPut复制文件夹的内容,而不是文件夹本身?
EN

Stack Overflow用户
提问于 2020-02-14 20:53:53
回答 2查看 4.3K关注 0票数 1

在我的Jenkins服务器上,我有一个简单的测试管道,可以将构建数据复制到远程服务器。我正在使用SSH Pipeline Steps插件。

我的代码是:

代码语言:javascript
复制
            stage('Remote SSH') {              
              steps {     
                sshRemove remote: remote, path: "/mnt/test"
                sshCommand remote: remote, command: "mkdir /mnt/test"                   

                writeFile file: './tst/abc.sh', text: 'ls -lrt'
                sshPut remote: remote, from: './tst/', into: '/mnt/test/.'
            }

结果是在/mnt/test中创建了"tst“文件夹及其内容。我想要的只是将这个tst文件夹的内容传输到目标。

我应该如何设置sshPut步骤的格式?

EN

回答 2

Stack Overflow用户

发布于 2020-02-19 19:38:40

查看源代码并阅读一些Java中的复制命令,似乎这就是Java中文件复制操作的工作方式。这将不得不遍历目录内容,以另一种方式完成。

由于我正在创建源文件夹(甚至在我的实际构建示例中),似乎最好的选择是在移动之前重命名该文件夹:

代码语言:javascript
复制
  sshRemove remote: remote, path: "/mnt/test"
  writeFile file: './tst/abc.sh', text: 'ls -lrt'
  sh "mv ./tst ./test"
  sshPut remote: remote, from: './test/.', into: '/mnt/'

如果有人有其他解决方案,我很乐意倾听。

票数 2
EN

Stack Overflow用户

发布于 2020-02-14 21:30:53

在Jenkins的‘Jira https://issues.jenkins-ci.org/browse/JENKINS-58778上有一个关于这个用例的问题

我希望下面的代码能正常工作,但它显然不能:

代码语言:javascript
复制
remote.fileTransfer = 'SCP'
sshPut remote: remote, from: './tst/*', into: '/mnt/test/'

另一种方法是在sshPut之后再执行一次sshCommand,以便随心所欲地'mv‘这些文件

通常我会访问https://<myJenkins>/pipeline-syntax并使用step builder。遗憾的是,它不适用于sshPut

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60226756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档