这可能是一个稍微不寻常的Jenkins查询,但我们有一个跨越很多项目的项目。所有这些都是基于Linux的,但它们跨越多种架构(MIPS,SPARC,ARMv6,ARMv7)。
对于特定组件,我们称其为“视频编码器”,因此我们有4个项目:mips-video-encoder,sparc-video-encoder等。
每个项目都建立在4个独立的从站上,其标签与其架构相关,即MIPS从站具有标签' mips' ' linux的&#39 ;.
我的目标是:
我查看了多配置'打字工作 - 目前我们只是使用简单的单一配置工作。我不确定多配置类型是否允许我们一次只构建单独的体系结构。我玩了配置矩阵,但不确定是否可以更改/调整以构建一个for 单个平台。看起来我可以使用Groovy语句来做到这一点?类似的东西:
(label=="mips".implies("slave"=="mips")
也许这可以简化为slave == label,其中label是作业的单一配置状态时的前名称,现在是构建参数吗?
如果我们可以以编程方式为此选择奴隶,我认为我们不需要这样的多配置作业。
我非常感谢有关如何整合我们所拥有的工作数量并根据作为构建参数的项目架构以编程方式更改目标从属的一些建议。
非常感谢,
答案 0 :(得分:0)
您可以使用系统groovy脚本创建包装器作业。你需要groovy插件。让我们调用包装器作业 - video-encoder-wrapper
,这里有子弹如何配置它:
ARCH
根据步骤video-encoder
ARCH
参数将标签分配给Execute system Groovy script
作业
import hudson.model.*
encoder=Hudson.instance.getItem('video-encoder')
def arch =build.buildVariableResolver.resolve("ARCH")
label= Hudson.instance.getLabel(arch)
encoder.setAssignedLabel(label)
调用非阻塞下游项目video-encoder
,不要忘记传递ARCH参数
Set Build Name
作业配置中的video-encoder
选项,并将其设置为${ENV,var="ARCH"} - #${BUILD_NUMBER}
。它可以让您轻松跟踪构建历史记录。video-encoder-wrapper
作业的并发版本。它将阻止同时为video-encoder
作业希望有所帮助