如何使用Jenkins从一个本地git存储库构建多服务器构建

时间:2017-05-29 16:57:08

标签: git jenkins jenkins-plugins jenkins-pipeline jenkins-cli

在我们的 spring-boot 项目中,我们使用本地Git设置,以便所有开发人员在我们的内部git服务器中提取和推送代码。
这意味着我们项目的Git结构就像one_project(项目名称)存储库中的Git结构一样,我们有名为apiuicommonnotification的子文件夹,authentication等等,其中有pom.xml但有一个.git文件,所有这些文件都存在于one_project存储库中。
这是我们项目中图像的粗略结构:

project

现在我必须使用Jenkins在两个不同的配置虚拟机上构建它们:机器A和机器B

因此,如果我必须在机器A和apiui,{{1}上构建和部署jar commonnotificationauthentication在机器B上,

注意common在两个虚拟机上使用

问题:
如何使用从属节点创建Jenkins作业,以便开发人员修复任何一个子模块上的错误或新代码并愿意使用Jenkins令牌(JENKINS_URL / job / one_project / build?token = api)构建配置VM时,所以它只是新的构建,例如。 common,而不是其他两个和其他两个相同?

1 个答案:

答案 0 :(得分:1)

  

只能制作新的内容,例如。 API,而不是其他API和其他两个相同。

现实情况是:詹金斯并没有做出构建"它只能协调构建步骤组成的工作。每个构建步骤都可以是您想要的任何:实际构建过程,部署过程,清理过程,或者......任何事情。

当Jenkins开始这项工作时,所说的工作将从取货开始,并检查回购。

然后你可以作为第一个" build"执行一个负责listing the changes since the last successful build的脚本 通过解析git log --name-only的结果,该脚本可以确定哪些主子文件夹已更改并需要重建。 然后,它可以设置一个环境变量,该变量可以由第二个构建步骤使用,另一个脚本将转到相关的子文件夹并启动实际构建。

重点是:所有这些构建步骤都是脚本,它们可以执行任何操作,并且应该首先在Jenkins之外在本地编写和测试。
一旦您有一个脚本能够确定应该重建的内容,您就可以轻松地将该脚本集成到Jenkins作业定义中。