zoukankan      html  css  js  c++  java
  • 修改jenkinsfile模板使流水线支持通过git commit拉取代码

    背景

          原有的jenkinsfile模板,在创建流水线时,代码分支这里可以输入master,release**,甚至正则表达式方式,实现checkout所需分支的代码。

    如上图,原有的jenkinsfile模板,分支名可以输入release/1.0.8这样具体分支名,也可以输入release**匹配release/1.0.8,release/1.0.2等分支,也可以冒号开头的正则表达式匹配所需分支,但是不支持通过commit来checkout代码,如果输入特定git commit,流水线会报错。

    需求解决

           git原生是支持通过commit来checkout代码的,参考jenkins官网,发现jenkinsfile的checkout方法,也是支持commit来拉取代码的,于是修改jenkinsfile模板如下

          如上图,在jenkinsfile模板里面的函数,增加一个逻辑判断,判断分支名是否包含--commit,如果含此字段,将--commit后面的输入当做分支名返回。经测试,可以实现commit来checkout代码的需求。

         测试截图如下

    如上图,checkout代码时,按照输入的0970fcbb0fb的git commit拉取了特定代码,显示为detached模式。

    不足

         1.需要分支名输入这里,通过--commit显性表明输入的为git commit。参考jenkins官网,git commit和冒号开头的分支正则表达式,都是可以直接在jenkinsfile的checkout方法直接传入使用的,因此自定义的jenkinsfile模板里面的分支判断函数,git commit的判断和第一条冒号开头的正则表达式的判断,是可以合并的,但是暂未找到可以匹配git commit但不匹配具体分支名的正则表达式写法。

        2.自定义的jenkinsfile模板里面的分支判断函数,release**的分支匹配判断和具体分支写法(如release/1.0.8)的判断,也是可以合并的。

    参考:

    https://jenkins.io/doc/pipeline/steps/workflow-scm-step/#code-checkout-code-general-scm

  • 相关阅读:
    Entity Framework 第十篇 条件查询
    Entity Framework 第九篇 关于自增列的事务处理
    Entity Framework 第八篇 结构优化
    Entity Framework 第七篇 简化排序
    控件截图Cache
    Java基础_自加运算
    Java基础_赋值运算
    Java基础_字符与字符串的运算
    同步和异步
    Application中的name属性
  • 原文地址:https://www.cnblogs.com/360linux/p/13062052.html
Copyright © 2011-2022 走看看