这也许是一个有点不寻常的Jenkins查询,但是我们有一个跨很多项目的项目。它们全部基于Linux,但是它们跨越多种体系结构(MIPS,SPARC,ARMv6,ARMv7)。
对于特定的组件,我们将其称为“视频编码器”,因此,我们将有4个项目:mips-video-encoder,sparc-video-encoder等。
每个项目都建立在4个独立的从站上,并带有与其架构相关的标签,即MIPS从站具有标签“ mips”,“ linux”。
我的目标是:
我看过“多配置”类型的作业- 目前,我们仅使用简单的单一配置作业。我不确定“多配置”类型是否允许我们一次仅构建单个体系结构。我玩过配置矩阵,但不确定是否可以更改/修改它以仅针对 单个 平台构建。看来我可以使用Groovy语句来做到这一点?就像是:
(label=="mips".implies("slave"=="mips")
也许可以简化为诸如slave == label之类的东西,其中label是作业处于单一配置状态时的前一个名称,现在是一个构建参数?
我认为,如果我们可以以编程方式为此选择从站,则我们不需要多配置作业。
我将不胜感激一些建议,以帮助我们如何合并已有的工作数量,并根据作为构建参数的项目体系结构以编程方式更改目标从属。
提前谢谢了,
您可以使用系统常规脚本进行包装工作。您需要为此使用groovy插件。让我们调用包装器作业- video-encoder- wrapper,以下是如何配置它的项目符号:
video-encoder- wrapper
ARCH
video-encoder
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}。它可以让您轻松跟踪构建历史。
Set Build Name
${ENV,var="ARCH"} - #${BUILD_NUMBER}
video-encoder-wrapper
希望能帮助到你