这也许是一个有点不寻常的Jenkins查询,但我们有一个跨越许多项目的项目。它们都是基于Linux的,但它们跨越多个体系结构(MIPS、SPARC、ARMv6、ARMv7)。
对于一个特定的组件,让我们称之为“视频编码器”,因此我们将有4个项目:mips-视频编码器,sparc-视频编码器,等等。
每个项目都建立在4个独立的从站上,标签与它们的体系结构相关联,即MIPS从站有标签'mips‘'linux’。
我的目标是:
我看过“多配置”类型的作业--目前我们只是使用简单的单一混合作业。我不确定多配置类型是否允许我们一次只构建单独的体系结构。我使用了配置矩阵,但不确定是否可以将其更改/调整为只为单个平台构建一个。看起来我可能可以使用Groovy语句来完成这个任务吗?类似于:
(label=="mips".implies("slave"=="mips")也许这可以简化为类似于从==标签,其中标签是作业的前名称时,它处于单一配置状态,现在是一个构建参数?
我在想,如果我们可以编程地选择这个从属程序,那么我们就不需要多配置作业了。
我非常希望能提供一些建议,说明我们如何能够合并我们拥有的作业数量,并根据项目的体系结构(这是一个构建参数)编程地更改目标从属程序。
事先非常感谢,
发布于 2015-06-23 19:23:02
您可以使用系统groovy脚本编写包装程序。为此您需要groovy插件。让我们调用包装器作业- video-encoder-wrapper,下面是如何配置它的要点:
ARCHvideo-encoder的ARCH参数将标签分配给Execute system Groovy script作业
encoder=Hudson.instance.getItem('video-encoder') def arch =build.buildVariableResolver.resolve("ARCH") label= Hudson.instance.getLabel(arch) encoder.setAssignedLabel(标签)video-encoder,不要忘记传递ARCH参数video-encoder作业配置中的选项video-encoder,并将其设置为${ENV,var="ARCH"} - #${BUILD_NUMBER}。它将允许您轻松地跟踪构建历史。video-encoder-wrapper作业的并发生成。这将防止同时将两个不同的标签分配给video-encoder作业。希望它能帮上忙
https://stackoverflow.com/questions/30960587
复制相似问题