【问题标题】:Running same jenkins job with different source code but in parellel使用不同的源代码但并行运行相同的詹金斯作业
【发布时间】:2015-12-22 09:23:11
【问题描述】:

我有一份 jenkins 工作,负责构建和部署 maven 项目。这项工作取决于我传递给工作的几个参数。该作业还从 git 存储库中签出代码。

我有 4 个分支(开发、测试、发布和补丁)作为项目的源代码。

如何用不同的参数和项目的不同源代码运行相同的作业。

示例: - 假设我们通过将 param1 和 param2 传递给作业并使用 dev 分支来触发作业运行。

  • 考虑到步骤 1 的运行尚未完成,如何通过传递 param3 和 param4 但这次使用测试分支来触发相同的作业

我想从同一个作业的不同源分支并行进行不同的构建。

还有其他建议的设计吗?

【问题讨论】:

  • 做两个构建并使用不同的参数运行它们。

标签: maven jenkins continuous-integration jenkins-plugins


【解决方案1】:

这里的一个固有问题是 - 当您启动同一作业的另一个构建时,它会覆盖它正在使用的工作区。

解决 IMO 问题的方法有两种:

  1. 就像@bish 在他的评论中提到的 - 两个独立的工作。
  2. 传递一个参数,该参数将启动一个小脚本,该脚本将检出项目到workspace/subdir 文件夹而不是workspace。您可以在Add pre-build step -> Execute shell script 中执行此操作。在这里,您需要确保不会“清除工作区文件夹”。 (Jenkins GIT 插件可以选择将项目签出到子目录,但我不知道如何有条件地触发它。所以,在这里进行简单的手动干预。) 接下来,您可以选择提供可用分支的列表,如我之前的answers 之一所示

如果这有帮助,请告诉我。

【讨论】:

  • 所以如果我能够在每次触发作业运行时在子目录中进行构建,那么任何团队都可以访问 jenkins 页面,传递他们的参数,选择他们的分支并执行构建,对吧?
  • 我相信是的。您的第 3 份工作使用 /workspace,但您的第 2 份和第 4 份工作使用 /workspace/subdir.. 这样..
  • 同一个作业可以同时触发多少个构建?这个想法是我们有一个项目应该从构建到部署在同一个构建周期中进行,同时我们有多个团队需要使用不同的参数和不同的 git 分支进行构建。我正在努力做到最好设计所以让每个团队使用自己的参数进行循环,独立部署而不影响其他团队
  • 使用我建议的方法,一次只构建 2 个版本。我不完全理解你的计划。对于您命名的分支,我想象这就是您的开发操作流程的样子:- 开发团队在开发分支中处理新的未发布代码。 Cherry 选择的提交进入最终部署给客户的发布分支,而补丁分支将只有特定客户要求的自定义修复。如果您不需要经常运行发布和修补作业,我建议将它们作为单独的作业保留。
  • 谢谢,您建议使用多份工作似乎不错
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多