0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Pipeline改造过程中的几点主要经验分享

8nfr_ZTEdevelop 来源:未知 作者:李倩 2018-04-13 10:26 次阅读

概述

经过前面三篇文章的详细介绍,讲述了本项目在Jenkins2.0 Pipeline实践和iPipeline框架(plll库)应用的过程中的一些思考、改进以及实践,而本文作为系列文章的最后一篇,主要想分享一下本项目在过去一段时间中对于Jenkins2.0 Pipeline改造的一些经验。

经验分享

XXX项目迁移到Pipeline已经有一段时间了,期间不断重构,不断改进和演化,本文准备在此给出几条本项目Pipeline改造过程中的几点主要经验分享。

1. 建议项目打造分层模式的Pipeline流程

本项目启用CI分层策略,打造了4个层次的CI流程,分别为:

VerifyCI

MergeCI

DailyCI

TagCI

其中VerifyCI和MergeCI用于开发人员平时合代码、DailyCI对应每日构建,而TagCI则用于版本构建,各司其职,层次分明。

具体如下图所示:

2. 建议打造多层次并行的Pipeline流程

不同Pipeline之间可并行Jenkins已天然支持,而利用iPipeline则能支持同一个Pipeline的不同任务之间的并行,而再具体到某个任务内则设计者应根据各自项目实际情况,尽量将任务内各步骤设计成并行模式。本项目对VerifyCI任务内的各步骤运行规划如下,能并行的步骤尽量并行执行:

3. 关于MergeCI的运行模式与流程的摸索

该部分可以参考:-Jenkins2.0 Pipeline框架(iPipeline)优化实践之路(三:MergeCI机制研究)

4. 关于Jenkinsfile托管方式的小技巧

虽然说一般要求将Jenkinsfile与所在代码库的代码放在一起托管,即将Jenkinsfile置于代码库根目录,但我们在实际实践中发现一个问题是,一旦代码库比较庞大,每次Pipeline运行时去解析Jenkinsfile时也是需要很长时间的,背后的原因不言而喻。

因此我们实际试验发现:Jenkinsfile 与 代码库可分离!即可以将置于其他Gerrit库路径中Jenkinsfile对另外一个Gerrit库的代码做CI编排,原因在于要做CI编排的库路径是人为地配置在Jenkinsfile中的。

举例来说明:

本项目VerifyCI的Jenkinsfile托管路径位于:xxx.xxx.com.cn/XXXXX/xxxxx_lib_verifyci

从VerifyCI的属性参数中可以看出,如下图所示:

然后我们的代码库地址则是另外一个,其配置于Jenkinsfile之中:

env.GERRIT_SERVER_NAME ="XXXXX_VerifyCI"

env.GERRIT_SERVER_URL ="ssh://xxxxx_jenkins@gerrit.zte.com.cn:29418/"

env.GERRIT_PROJECT = env.GERRIT_PROJECT?:"XXXXX/tool"// 实际代码库地址

plll.set_default_properties("verifyci",[

gerrit:[

server:"${env.GERRIT_SERVER_NAME}",

projects:[[project:"${env.GERRIT_PROJECT}", branch:"${plll.getJobBaseName()}"]]

]

]);

如此一来便实现了二者的分离。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4553

    浏览量

    66665
  • Pipeline
    +关注

    关注

    0

    文章

    27

    浏览量

    9293
  • devops
    +关注

    关注

    0

    文章

    100

    浏览量

    11899

原文标题:DevOps 案例 | Jenkins2.0 Pipeline框架(iPipeline)优化实践之路(四)

文章出处:【微信号:ZTEdeveloper,微信公众号:中兴开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux安装的几点经验

    Linux的应用软件比较少,Native分区也不必留的太大。我建议Native分区不要超过2.5G。  3. 由于安装过程中会询问一些有关硬件的信息,因此要提前搜集好PC硬件方面的信息。硬件信息主要
    发表于 09-13 10:16

    Linux安装的几点经验

    Linux安装的几点经验
    发表于 08-17 22:39

    数控机床维修改造需要注意的几点分享

    应该要满足无间隙传动的要求。( 4 )数控机床维修改造的调试与验收对数控设备进行相关的调试以及对维修的标准进行合理的验收也是数控机床维修改造必不可少的一个步骤。在进行数控机床的调试过程中,需要 有专门
    发表于 09-04 17:45

    AD芯片在调试过程中遇到的问题,应该怎么解决?

    AD芯片在调试过程中遇到的问题,应该怎么解决?一款TI/国半的超高速ADC调试经验分享
    发表于 04-09 06:41

    使用WiFi的过程中总结的一些经验

    简述在我们做项目开发,经常会用到WiFi,这次给大家分享一下我在使用WiFi的过程中总结的一些经验,这次用到的是esp8266WiFi模块,如图所示。引脚连接:GND:接地GPIO16:其实是
    发表于 08-05 07:30

    无线充电电力传输过程中主要的损耗是什么

    无线充电电力传输过程中主要的损耗:1.供电端的驱动组件,主要是MOSFET的开关损耗2. 供电端和受电端的线圈与谐振电容通过电流的损耗3.受电端的整流部分,交流到直流的转换损耗4.受电端的稳压转换
    发表于 09-15 07:13

    NRF24L01学习过程中经验和心得分享

    nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。凭借其低功耗、传输速率高、误传率低等的优点,现已广泛应用在各种嵌入式系统。本文就该模块总结一些学习过程中经验和心得。
    发表于 02-16 06:48

    Linux安装的几点经验

    Linux安装的几点经验
    发表于 08-17 03:25

    Linux安装的几点经验

    Linux安装的几点经验 Linux安装的几点经验  有关于Linux操作系统的好处许多文章都已经有介绍过了,想必大家一定都知道一些,前不久,我在我的电脑上安装了一套
    发表于 01-18 12:40 377次阅读

    ATX_电源维修的几点经验

    ATX_电源维修的几点经验,ATX_电源维修的几点经验
    发表于 05-27 17:04 12次下载

    PCB布线的几点经验

    PCB布线的几点经验,感兴趣的小伙伴们可以看看。
    发表于 07-26 15:18 0次下载

    5G网络建设过程中的规划及经验总结

    5G建设过程中难点,杭州移动在快速规划、天面快速改造、灵活传输组网方案和动力改造方案4个方面做出一些探索。
    发表于 06-20 09:23 1.8w次阅读
    5G网络建设<b class='flag-5'>过程中</b>的规划及<b class='flag-5'>经验</b>总结

    嵌入式开发过程中的一点调试经验

    嵌入式开发过程中的一点调试经验嵌入式开发最麻烦的在现场调试过程中或实际运营过程中出现问题很难定位。我在实际开发过程中一点
    发表于 11-02 18:06 15次下载
    嵌入式开发<b class='flag-5'>过程中</b>的一点调试<b class='flag-5'>经验</b>

    Verilog设计过程中的一些经验与知识点

     “ 本文主要分享了在Verilog设计过程中一些经验与知识点,主要包括块语句、阻塞赋值和非阻塞赋值 以及结构说明语句(initial, always, task, function)
    的头像 发表于 03-15 12:19 2086次阅读

    升压变流器的几点调试经验

    升压变流器的几点调试经验
    发表于 11-02 08:16 0次下载
    升压变流器的<b class='flag-5'>几点</b>调试<b class='flag-5'>经验</b>