将GIT推送分支转到Jenkins多配置项目用户定义的轴



我有一个项目,其中有两个分支。每次将代码推到分支,develop分支都需要构建,并且只有在手动执行时才能运行master。我遇到了多配置项目,可以在其中使用参数为两个分支指定不同的构建命令。对于文件夹,我可以为develop分支编写develop/pom.xmlmaster分支的master/pom.xml。但是我想使用一个参数代替分支名称,例如$branch/pom.xml,其中应从推入的分支中获得$branch值。这可能吗?如果没有,这有什么作用?

我会创建两个詹金斯项目:

  • develop-build-trigger (Freestyle)
  • 构建 - 分支(maven)

和配置git插件>从存储库推送通知:

为了最大程度地减少按下和构建之间的延迟,建议在新推动时将存储库中的后钩设置在存储库中,以戳詹金斯。为此,请在hooks/post-receive文件中添加以下行,其中<URL of the Git repository>是您在克隆此存储库时使用的完全合格的URL。

curl http://yourserver/git/notifyCommit?url=<URL of the Git repository>[&branches=branch1[,branch2]*][&sha1=<commit ID>]

这将扫描所有工作:

  • 构建触发器> poll scm 已启用。不需要轮询时间表
  • 被配置为在指定的URL
  • 上构建存储库
  • 被配置为构建可选的指定分支或提交ID

另请参见Pro Git,8.3自定义git -git钩。

<Your repo>/.git/hooks/post-receive

curl http://<Your Jenkins>/git/notifyCommit?url=<Your repo>&branches=develop

自由式项目开发构建 - 触发

  • 源代码管理

    • ◉git

      • 存储库

        • 存储库网址:... your repo ...
      • 构建的分支

        • 分支指定者:develop
  • 构建触发器

    • ☑民意调查SCM
  • 后构建动作

    • 在其他项目上触发参数化构建
      • 构建触发器
        • 要构建的项目:build-given-branch
        • 预定义参数
          • 参数:branch=develop

此项目将在post-receive上触发,因为它将develop指定为要构建的分支,该分支符合post-receive挂钩URL中给出的分支。

Maven Project build-given-Branch

  • ☑此构建是参数化的

    • 选择参数

      • 名称:branch
      • 选择:

        master
        develop
        
  • 源代码管理

    • ◉git

      • 存储库

        • 存储库URL:... your repo ...
      • 构建的分支

        • 分支指定者:$branch
  • 构建

    • 根POM:$branch/pom.xml

使用参数构建,并确认手册master构建的默认值master。(作为另外的好处,您也可以手动构建develop。)

一个缺点是您在每个项目中两次检查了develop分支。

话虽如此,我还想提到,对于同一项目,拥有不同的POM是不寻常的。如果项目对项目有不同的看法,则应根据这些观点来完成不同的事情,而Maven支持构建配置文件:

他们在构建时间修改了POM,并应在互补集中使用,以提供一组目标环境的等效但不同的参数(例如,例如在开发中,AppServer root的路径,测试和生产环境)。

这意味着在您的情况下,构建 root pom 保持空,→目标和选项-P $branchmaster<activeByDefault>配置文件,该配置文件不会更改配置上的任何内容)。

最新更新