1

我是 Jenkins CI 工具的新手,我想知道当有多个项目在不同的 SVN 位置相互依赖时,是否可以指定要使用的构建。例如,如果我在 SVN location1 上有 web 项目,在 SVN location2 上有后端项目,并且 web 依赖于后端,并且其中一个开发人员在后端修改了某些内容,那么当 web 开发人员进行提交时,将会出现构建失败. 是否有可能指定来自 Web 部件的构建应该考虑来自后端的构建 x 而不是最新的构建?

提前致谢。

4

2 回答 2

0

您针对另一个项目的特定版本构建项目的示例有点不标准,但并非不可能。

在您的情况下,我会使用 Jenkins 执行任意脚本的能力来提供帮助。该脚本将负责获取我要构建的项目所依赖的项目的正确版本。

在您的 Web 和后端项目示例的基础上,我将在不使用参数化构建的情况下执行以下操作:

  1. 向 Web 项目的存储库添加一个文件,该文件存储要使用的后端项目的版本
  2. 在 SVN 中后端项目的源发生更改时,配置作业以构建 Web 项目。
    1. 该项目应签出最新版本的 Web 项目
    2. 项目的第一个构建步骤将是执行以下操作的脚本(执行 Shell 或执行 Windows 批处理命令):
      1. 从包含版本信息的文件中获取要使用的后端版本
      2. 从后端的存储库中提取适当版本的后端;或拉取适当版本的后端源的源
    3. (如果你只为后端拉取源,下一个构建步骤应该是构建后端)
    4. 构建 Web 部分
    5. 做任何单元测试
于 2012-05-14T20:14:59.070 回答
0

是的,可以做到。在 Jenkins 中检查项目 web-settings 中的Build Triggers选项,并在构建其他项目后的 Build行上,您可以在对基础项目进行更改后指定要自动构建的项目的名称。

同样,在Post-build Actions中,查找Build other projects,您可以在其中指定如果基础项目构建成功,它将自动触发子项目的构建。

希望这可以帮助。

于 2012-05-14T13:36:24.807 回答