在我们的 spring-boot 项目中,我们使用本地Git设置,以便所有开发人员在我们的内部git服务器中提取和推送代码。
这意味着我们项目的Git结构就像one_project
(项目名称)存储库中的Git结构一样,我们有名为api
,ui
,common
,notification
的子文件夹,authentication
等等,其中有pom.xml
但有一个.git
文件,所有这些文件都存在于one_project
存储库中。
这是我们项目中图像的粗略结构:
现在我必须使用Jenkins在两个不同的配置虚拟机上构建它们:机器A和机器B
因此,如果我必须在机器A和api
,ui
,{{1}上构建和部署jar common
,notification
,authentication
在机器B上,
注意common
在两个虚拟机上使用
问题:
如何使用从属节点创建Jenkins作业,以便开发人员修复任何一个子模块上的错误或新代码并愿意使用Jenkins令牌(JENKINS_URL / job / one_project / build?token = api)构建配置VM时,所以它只是新的构建,例如。 common
,而不是其他两个和其他两个相同?
答案 0 :(得分:1)
只能制作新的内容,例如。 API,而不是其他API和其他两个相同。
现实情况是:詹金斯并没有做出构建"它只能协调构建步骤组成的工作。每个构建步骤都可以是您想要的任何:实际构建过程,部署过程,清理过程,或者......任何事情。
当Jenkins开始这项工作时,所说的工作将从取货开始,并检查回购。
然后你可以作为第一个" build"执行一个负责listing the changes since the last successful build的脚本 通过解析git log --name-only的结果,该脚本可以确定哪些主子文件夹已更改并需要重建。 然后,它可以设置一个环境变量,该变量可以由第二个构建步骤使用,另一个脚本将转到相关的子文件夹并启动实际构建。
重点是:所有这些构建步骤都是脚本,它们可以执行任何操作,并且应该首先在Jenkins之外在本地编写和测试。
一旦您有一个脚本能够确定应该重建的内容,您就可以轻松地将该脚本集成到Jenkins作业定义中。