• jenkins实现master变化时,才触发构建(过滤分支)


     

    现状:现在是这样的,每个开发push时,都触发jenkins进行构建

    期望:只有当代码被push到master时才进行构建

    (根据使用的git平台)做这些配置需要先了解一些概念

    (github) pull request

    (gitlab) merge request

     

    理解 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?看这篇

     https://cloud.tencent.com/developer/article/1341633

    个人理解,其实pull request 和 merge request表达的意思都是一样的,只是在不同的平台,起了不同的名字

    • GitHub、Bitbucket 和码云(Gitee.com)选择 Pull Request 作为这项功能的名称
    • GitLab 和 Gitorious 选择 Merge Request 作为这项功能的名称 

     

    然后还要理解gitlab的工作流

     

    步入正题:

    2种方式可以实现 只有master代码变化时才触发自动化测试

    • 利用merge request: 当开发发送merger request给项目leader时(要求合代码),就进行构建
    • 利用jenkins进行配置,只有当master代码产生push时,才进行构建

     

    方式1:利用merge request方式:

     

    step1:

    打开gitlab仓库配置的webhook,勾选Merge request events的选项

    我这边是已经配置过webhook了,如果还没有配置过,请参考这篇进行配置:

    GitLab 自动触发 Jenkins 构建

     

     

     

     

     

    step2:配置jenkins

    打开项目配置

    Builder triggers>>取消勾选Push Events 选项,然后把有关merge request events 的选项勾上(如果不去掉push events 当分支发生push时,jenkns还是会构建

     

    step3:测试配置结果

    在gitlab 发送一个push的请求,可以看到jenkins已经不会构建了

    再测试发送一个 merge request

    发现jenkins已经在进行构建了

    方式2:利用jenkins进行配置,只有当master代码产生push时,才进行构建,这个很简单

    我们可以通过jenkins>>Builder triggers 配置正则匹配,只有当master分支发生改变时才会触发jenkins。

     

    step1:打开项目配置

    Builder triggers>>Advanced>>Allowed branches>>Filter branches by regex>>Target Branch Regex>>填写master>>保存配置

     

     

    注意:这次要勾选 push events 

     

    step2:测试配置结果

    a.当开发在dev分支push时,jenkins不会再进行构建

    b.当开发在 master push时,jenkins进行构建了

    至此就实现了我想要实现的效果:只有master分支会触发jenkins进行构建

     

    我遇到坑:

    如果我使用方式2配置了过滤分支的正则表达式(同时勾选了push events ),gitlab发送请求的时候就会报错  



    造成这个问题的原因是,我的正则表达式写错了,晕~

    应该是master 而不是*master

     

    我参考的文章,谢谢前人zai树,让后人可以乘凉

    配置github的pull request触发jenkins自动构建

    jenkins定位master分支构建

    配置GitHub pull request时jenkins自动构建

     gitlab自动化触发jenkins构建项目

     

  • 相关阅读:
    Java回调机制
    显示Title和隐藏Title的ListView
    ListView的小知识
    小知识点
    Shader的使用
    项目知识(二)
    项目知识(一)
    复习篇(一)Activity的生命周期和启动模式
    BootStrap 提示框
    BootStrap选项卡
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11095260.html
Copyright © 2020-2023  润新知