【问题标题】:How to build on multi server build using Jenkins from one local git repository如何使用 Jenkins 从一个本地 git 存储库构建多服务器构建
【发布时间】:2017-05-29 16:57:08
【问题描述】:

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

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

因此,如果我必须在机器 A 上构建和部署 apiuicommonnotificationauthenticationcommon 在机器 B 上的 jar,

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

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

【问题讨论】:

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


    【解决方案1】:

    只制作一个新版本,例如。 API,不是其他的,其他两个相同。

    现实情况是:Jenkins 不会“构建”:它只会编排由构建步骤组成的作业。每一个构建步骤都可以是任何你想要的:一个实际的构建过程,或者一个部署,或者一个清理,或者......任何东西。

    当 Jenkins 将启动该作业时,该作业将从获取并检查 repo 开始。

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

    重点是:所有这些构建步骤都是脚本,可以做任何你想做的事情,并且应该首先在 Jenkins 之外的本地编写和测试。
    一旦您有了一个能够确定应该重建什么的脚本,您就可以轻松地将该脚本集成到 Jenkins 作业定义中。

    【讨论】:

      猜你喜欢
      • 2020-08-14
      • 2012-02-13
      • 2018-05-12
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 2017-04-12
      • 1970-01-01
      相关资源
      最近更新 更多