在我的Jenkins服务器上,我有一个简单的测试管道,可以将构建数据复制到远程服务器。我正在使用SSH Pipeline Steps插件。
我的代码是:
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步骤的格式?
发布于 2020-02-19 19:38:40
查看源代码并阅读一些Java中的复制命令,似乎这就是Java中文件复制操作的工作方式。这将不得不遍历目录内容,以另一种方式完成。
由于我正在创建源文件夹(甚至在我的实际构建示例中),似乎最好的选择是在移动之前重命名该文件夹:
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/'如果有人有其他解决方案,我很乐意倾听。
发布于 2020-02-14 21:30:53
在Jenkins的‘Jira https://issues.jenkins-ci.org/browse/JENKINS-58778上有一个关于这个用例的问题
我希望下面的代码能正常工作,但它显然不能:
remote.fileTransfer = 'SCP'
sshPut remote: remote, from: './tst/*', into: '/mnt/test/'另一种方法是在sshPut之后再执行一次sshCommand,以便随心所欲地'mv‘这些文件
通常我会访问https://<myJenkins>/pipeline-syntax并使用step builder。遗憾的是,它不适用于sshPut
https://stackoverflow.com/questions/60226756
复制相似问题