归档具有相同名称的工件

时间:2017-11-22 09:42:53

标签: jenkins jenkins-pipeline jenkins-declarative-pipeline

我使用声明性管道作为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,因此可能没有任何直接开箱即用的内容。

1 个答案:

答案 0 :(得分:0)

即将面对同样的问题......

您可以使用stashunstash在文件夹和节点之间移动文件(Google将其存放到其他目录中)。在这种情况下,为每个平台存储输出,并添加一个最终阶段,将每个平台卸载到单独的文件夹中。然后最终归档该批次,以便在构建完成后使其可用。

对此有各种变化,当然您可以将构建本身输出到平台/体系结构特定文件夹。