2017-05-12 24 views
0

下一步我試圖建立管道詹金斯,編譯一些節點/咕嚕的東西,製造和RPM出這一點,並上傳RPM所需回購。不知何故,我有步驟之間傳遞文件的困難。所以在'RPM上傳階段'生成的RPM不可見並且不能上傳。「unstash」沒有放置任何東西,在詹金斯管道

pipeline { 
    agent none 
    stages { 
     stage('Checkout') { 
      agent { label 'master' } 
      steps { 
      checkout(...) 
      } 
     } 

     stage('Build') { 
      agent { docker { 
       image 'custome-nodejs:4' 
       reuseNode true } 
      } 
      steps { 
       sh 'npm install' 
       sh "./build.sh build" 
       stash includes: '*.rpm', name: "rpms" 
      } 

     } 

     stage('RPM upload') { 
      agent { label 'master' } 
      steps { 
       unstash "rpms" 
       sh "./build.sh upload" 
      } 
     } 

    } 
} 

相關的輸出

[Pipeline] stash 
Stashed 1 file(s) 
[Pipeline] } 
... 
[Pipeline] unstash 
[Pipeline] sh 

我們看到,完全按預期一個文件藏起來,但沒有文件在下一步unstashed。

有人可以解釋爲什麼嗎?以及如何解決它?

回答

0

我想我明白了一個問題。其中包含兩件事。

1)構建腳本中的錯誤刪除了RPM文件。所以稍後不可見。 2)我不需要存儲在這裏,因爲我們在使用代理而不是節點的「聲明式管道」中。交叉節點上需要存儲(類似我讀過的東西)。儘管有誤導性的信息,但也可以在這裏工作。而這

[Pipeline] unstash 

可能會取消該文件。這裏如何呢?並在接下來的步驟中被刪除。