Continuous integration Jenkins-丢弃/保留参数化构建的工件

Continuous integration Jenkins-丢弃/保留参数化构建的工件,continuous-integration,hudson,jenkins,jenkins-plugins,build-pipeline,Continuous Integration,Hudson,Jenkins,Jenkins Plugins,Build Pipeline,在Jenkins(或Hudson)中,我建立了一个参数化作业管道,比如a->B,使用复制工件插件相互复制工件。所有作业都使用相同的参数,例如目标平台。每个作业都设置为丢弃旧的构建和工件以限制磁盘使用,只保留最新的稳定构建工件。我使用参数化构建来避免维护许多只在参数设置上不同的作业 此设置仅在所有生成在管道中以相同的参数设置彼此紧跟运行时有效,因此最新的生成工件与从属作业的平台参数设置相匹配。现在,如果有人先为平台x构建作业A,然后为平台y构建作业B,然后为平台x构建作业B,那么来自平台x的工件已

在Jenkins(或Hudson)中,我建立了一个参数化作业管道,比如a->B,使用复制工件插件相互复制工件。所有作业都使用相同的参数,例如目标平台。每个作业都设置为丢弃旧的构建和工件以限制磁盘使用,只保留最新的稳定构建工件。我使用参数化构建来避免维护许多只在参数设置上不同的作业

此设置仅在所有生成在管道中以相同的参数设置彼此紧跟运行时有效,因此最新的生成工件与从属作业的平台参数设置相匹配。现在,如果有人先为平台x构建作业A,然后为平台y构建作业B,然后为平台x构建作业B,那么来自平台x的工件已经被丢弃,因此B无法复制这些工件


有没有办法告诉Jenkins使用不同的参数为每个构建保留最新的工件,并丢弃所有其他工件?

手动解决方案:将工件从复制到由参数设置键的目录中。作业A将在生成之前清除目录,从而确保过时的工件不会传递给作业B。作业B将在任何情况下运行后清除目录。

手动解决方案:将工件从A复制到由参数设置密钥的目录中。作业A将在构建之前清理目录,从而确保陈旧的工件不会传递给作业B。作业B将在任何情况下运行后清理目录。

这将起作用,但在某种程度上违背了让Jenkins管理工件的意义。我更愿意让Jenkins处理工件,这样我就可以在多个从机之间访问这些工件,而不必担心共享驱动器,并让用户从Jenkins的网页下载它们。根据您的回答,我可以为每个参数添加一个迷你作业,以在一个参数之后运行并归档工件,但这再次挫败了最小化作业配置的想法……我同意。如果你找到一个更优雅的解决方案,请发布它并“ping”我。这可能会奏效,但有点违背了让詹金斯管理工件的意义。我更愿意让Jenkins处理工件,这样我就可以在多个从机之间访问这些工件,而不必担心共享驱动器,并让用户从Jenkins的网页下载它们。根据您的回答,我可以为每个参数添加一个迷你作业,以在一个参数之后运行并归档工件,但这再次挫败了最小化作业配置的想法……我同意。如果你找到一个更优雅的解决方案,请发布它并“ping”我。