首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Jenkins配置为在构建时从build参数中以编程方式确定从服务器?

将Jenkins配置为在构建时从build参数中以编程方式确定从服务器?
EN

Stack Overflow用户
提问于 2015-06-21 02:00:45
回答 1查看 752关注 0票数 0

这也许是一个有点不寻常的Jenkins查询,但我们有一个跨越许多项目的项目。它们都是基于Linux的,但它们跨越多个体系结构(MIPS、SPARC、ARMv6、ARMv7)。

对于一个特定的组件,让我们称之为“视频编码器”,因此我们将有4个项目:mips-视频编码器,sparc-视频编码器,等等。

每个项目都建立在4个独立的从站上,标签与它们的体系结构相关联,即MIPS从站有标签'mips‘'linux’。

我的目标是:

  1. 巩固我们所有独立的工作。这将使我们可以更容易地修改作业属性,也可以更容易地添加更多的作业,而无需重复添加这么多特定于体系结构的作业。
  2. 允许我们一次只建造一座建筑,如果我们愿意的话。如果MIPS工作失败,我们希望只为MIPS而不是为其他人构建。

我看过“多配置”类型的作业--目前我们只是使用简单的单一混合作业。我不确定多配置类型是否允许我们一次只构建单独的体系结构。我使用了配置矩阵,但不确定是否可以将其更改/调整为只为单个平台构建一个。看起来我可能可以使用Groovy语句来完成这个任务吗?类似于:

代码语言:javascript
运行
复制
(label=="mips".implies("slave"=="mips")

也许这可以简化为类似于从==标签,其中标签是作业的前名称时,它处于单一配置状态,现在是一个构建参数?

我在想,如果我们可以编程地选择这个从属程序,那么我们就不需要多配置作业了。

我非常希望能提供一些建议,说明我们如何能够合并我们拥有的作业数量,并根据项目的体系结构(这是一个构建参数)编程地更改目标从属程序。

事先非常感谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-23 19:23:02

您可以使用系统groovy脚本编写包装程序。为此您需要groovy插件。让我们调用包装器作业- video-encoder-wrapper,下面是如何配置它的要点:

  • 定义参数ARCH
  • 根据步骤video-encoderARCH参数将标签分配给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作业。

希望它能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30960587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档