我正在尝试设置Jenkins管道,它编译一些节点/ grunt东西,make和RPM,并将RPM上传到所需的repo。不知何故,我在步骤之间传递文件有困难。因此,在“RPM上传阶段”,生成的RPM不可见,无法上传。
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
我们看到只有一个文件按预期存储,但下一步没有文件被释放。
有人可以解释原因吗?以及如何解决它?
答案 0 :(得分:0)
我想我明白了一个问题。其中包括两件事。
1)构建脚本中的错误删除了RPM文件。所以以后不可见。 2)我不需要在这里藏匿,因为我们处于声明性管道中。使用代理而不是节点。跨越节点需要存储(我读过类似的东西)。尽管有误导性的消息,也可以在这里工作。这个
[Pipeline] unstash
也许没有把这个文件取消。它怎么会在这里出现。并且在下一步之后被提到的bug删除了。