在我的CI基础设施中,我有一个jenkins master作为容器和2个奴隶(vms)运行。 我尝试在节点上的docker容器内运行构建,因此在构建过程中,我将目标文件夹藏起来,以便稍后在其他节点上使用它。 在作业的日志中,我可以看到该文件夹成功存储。 当构建完成后,容器会自动销毁,然后在下一步中,我会解压缩该文件夹,以便在单独的节点中实现另一个阶段,但不会发生这种情况。似乎unstash没有任何东西。
PLZ如何将我的目标从容器转移到另一个节点甚至是主机???
这是我的管道代码:
node('docker') {
stage('Checkout Code') {
checkout scm
}
stage('Build') {
withMaven( jdk: 'jdk_8', maven: 'maven 3') {
mvn 'clean install'
stash name: 'war', includes: 'x.war'
}
}
node('master') {
stage('test') {
withMaven( jdk: 'jdk_8', maven: 'maven 3') {
unstash : 'war'
sh 'mvn clean test'
}
}
}
}

答案 0 :(得分:2)
我怀疑战争实际上是被搁置的,因为生成的战争不应该在你执行mvn clean install
的同一目录中。
我预计战争将成为目标。您可能希望将includes: 'x.war'
更改为includes: 'target/x.war'
。或者,转到安装了war的maven资源库并从那里存储文件:
withMaven( jdk: 'jdk_8', maven: 'maven 3') {
mvn 'clean install'
dir('<path to war>'){
stash name: 'war', includes: 'x.war'
}
}