结合git命令针对性更新微服务中的子服务思路

  背景:

        一个微服务git仓库,包含多个自服务,在结合git webhook进行更新时,每次会全量更新,构建时间长,过程缓慢,严重影响测试效率。

目标:

        如果只是某个子服务的代码发生变更了,去针对性的更新该服务即可,未发生变化的服务无需进行构建。减小服务器构建压力,提升服务自动化构建性能。

思路:

        在jenkins服务器上,对pull下来的代码进行比较,找到发生代码变化的服务,然后基于该服务进行pipeline 构建。

       

具体步骤如下(操作均在jenkins服务器中进行):

1.构建两个分支: develop(当前分支) master(稳定版分支:每次更新完要将develop分支合并到master,保持两个分支代码一致)

2.在jenkins中构建微任务,拉取代码至本地develop分支

3.创建集合(allRepository)列出所有子服务名, 并创建一个待更新子服务的集合(updateRepository)

4.基于子服务名集合(allRepository),分别进入对应的子服务目录,使用 git diff  develop..master --name-only ./   比对该子服务目录下两个分支代码的异同(只列出文件名)

5.如果步骤4有文件,则表示该子服务需要更新,该子服务名添加至待更新子服务的集合(updateRepository)中,  基于第3步循环执行4和5步,直至循环执行结束,生成最终待更新子服务集合列表。

6.基于待更新子服务集合列表进行更新操作(jenkins pipeline)

7.更新结束后,讲develop分支合并至master分支,保持版本一致

综上,即可实现有代码更新的服务进行针对性更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值