我使用声明性管道作为Jenkins作业。 阶段'建立'和'存档'在 parallel 中运行以从不同平台的节点(Linux 32& 64,windows等等)构建和收集工件
不幸的是,这些工件都是同名的。我无法在单个管道作业中归档多个mylib.so
。或者我可以吗?
嗯,在Windows的情况下,库将是.dll
,因此存在差异,但这不是一个整体解决方案。
有没有办法区分由多个节点构建的工件?
我的管道看起来与此相似:
pipeline {
agent none
stages {
stage('Build') {
parallel {
stage('Build on some Linux x64') {
agent { node { label 'linux_64' } }
steps {
// call make
}
}
stage('Build some more...') { ... }
}
}
stage('Archive') {
parallel {
stage('Archive from Linux x64') {
agent { node { label 'linux_64' } }
steps {
archive includes: 'out/*.so'
}
}
stage('Archive some more...') { ... }
}
}
}
}
我也见过this,因此可能没有任何直接开箱即用的内容。
答案 0 :(得分:0)
即将面对同样的问题......
您可以使用stash
和unstash
在文件夹和节点之间移动文件(Google将其存放到其他目录中)。在这种情况下,为每个平台存储输出,并添加一个最终阶段,将每个平台卸载到单独的文件夹中。然后最终归档该批次,以便在构建完成后使其可用。
对此有各种变化,当然您可以将构建本身输出到平台/体系结构特定文件夹。