文件没有在jenkins服务器的从机中解压缩

时间:2017-02-28 11:54:40

标签: jenkins groovy jenkins-plugins jenkins-pipeline

我使用ubundu作为jenkins服务器的主机并将windows机器配置为从机。我试图将一个文件从一个文件存储到另一个文件,但它并没有被安置。

node('slave') {
   node('master'){
     stash includes: "file.tgz" name: "master-stash"
   }
   unstash "master-stash"
   bat "ls"
}

输出:

[Pipeline] node
Running on master in /var/lib/jenkins/workspace/testing
[Pipeline] {
[Pipeline] stash
Stashed 1 file(s)
[Pipeline] }
[Pipeline] // node
[Pipeline] unstash

该文件可以从主文件中隐藏,但它不会在从属工作区中释放。

詹金斯:2.35

2 个答案:

答案 0 :(得分:1)

我认为你应该使用:

dir('path to file'){ stash name: 'my_stash' includes:'file.something' } unstash name:'my_stash' sh 'ls'

我在2.47版本使用Jenkins,它对我有用。这里有一件事是,如果你包含" rootFolder / file.tgz",你的unstash将为你提供文件的完整路径。如果您只想获取文件并将其放在当前目录中,则应使用:

sh'ls .'

CREATE FUNCTION [CurrentYearStart]() RETURNS DATETIME AS BEGIN DECLARE @Date DATETIME; SELECT top 1 @Date = StartPeriod FROM SystemPeriods WITH (NOLOCK); RETURN @Date; END 的输出会显示你" file.something"以及您取消暂停的文件夹中的其他文件。

答案 1 :(得分:-1)

我通过在存储包含中添加根文件夹解决了存储和解除问题的问题。我不知道为什么它不会释放单个文件,但它可以用文件解压缩根文件夹。

node('slave') {
   node('master'){
     stash includes: "rootFolder/file.tgz" name: "master-stash"
   }
   unstash "master-stash"
   bat "ls"
}

unstash文件可以从当前工作空间的rootFolder / file.tgz获取。