首页 > 解决方案 > Jenkins作业自动化优化

问题描述

我们有一些场景可以为同一组项目构建自动化,这些项目相互依赖。我们正在 Jenkins 中创建自动化,总共有 12 个工作。有没有办法只创建 4 个工作而不是 12 个?它可以自动更改 svn 路径和一些全局属性,例如提取 jar 和 jar 版本的路径。路径:这是一个全局变量,一旦刺拳完成,它就会将罐子放在这个地方。版本:这是指示 Jenkins 创建
此版本的 jar 的全局变量。

SVN 位置 1。

项目 A 项目 B 项目 C 项目 D

路径 1(全局变量)版本 1(全局变量)

SVN 位置 2。

项目 A 项目 B 项目 C 项目 D 路径 2(全局变量) 版本 2(全局变量)

SVN 位置 3。

项目 A 项目 B 项目 C 项目 D

路径 3(全局变量)版本 3(全局变量)

标签: jenkins

解决方案


您的答案的格式不是很好,所以有点难以理解..您可能想要解决这个问题。

但是我认为您基本上是在问是否可以创建一个通用的詹金斯工作,而不是使用硬编码变量的多个工作。

我不确定您想如何触发作业,但您可以使用构建参数来设置变量,例如:

  • 参数VERSION
  • 作业内的网址https://myurl.com/${VERSION}.jar

如果您需要按计划运行,有一个插件可以在 cron 计划上运行相同的作业,但参数不同。

或者,您可以使用调用通用作业的硬编码值创建多个作业。这并没有真正减少您拥有的工作量,但我想让您稍微拆分一下逻辑 - 并停止您需要安装上面提到的插件(允许 cron 带参数)。这看起来像:

  • 作业 A:在具有硬编码值(例如 VERSION=1)的 cron(或使用“立即生成”按钮)上运行,并调用传入该参数的通用作业。
  • 作业 B:在具有硬编码值(例如 VERSION=2)的 cron(或使用“立即构建”按钮)上运行,并调用传入该参数的通用作业。
  • Generic Job:像以前一样,接受 VERSION 的参数,并且在 job 中有一个 URL,例如:https://myurl.com/${VERSION}.jar

推荐阅读