请问怎么用 DevOps 管理多个模块的项目 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yang957862615
V2EX    DevOps

请问怎么用 DevOps 管理多个模块的项目

  •  
  •   yang957862615 2021-01-16 11:20:22 +08:00 4064 次点击
    这是一个创建于 1729 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有一个 40 个模块的项目,使用 Jenkinsfile 发布时将模块名列到 parameters 的 choice 参数里,每次发布时手动选择需要发布的模块,但是我感觉这样太费力了。 所以我想问问大神们是怎么管理这种中型项目的,请大神们赐教,感谢感谢

    13 条回复    2021-01-17 10:39:05 +08:00
    ghwolf007
        1
    ghwolf007  
       2021-01-16 11:30:53 +08:00
    hantsy
        2
    hantsy  
       2021-01-16 11:50:38 +08:00
    @ghwolf007 Jenkins 的 Cloud 版本 CodeShip 有没有更新,以前看了一下,太难用,放弃了。

    好多年没有用 Jenkins 了,现在不喜欢自己建这些东西。

    基于 Cloud 的 CI/CD 方案多如牛毛。https://github.com/hantsy/spring-reactive-jwt-sample
    yang957862615
        3
    yang957862615  
    OP
       2021-01-16 12:21:06 +08:00
    @ghwolf007 感谢感谢,看了很久但是还是不懂怎么用共享库发布这种多模块项目,期待再赐教
    calmzhu
        4
    calmzhu  
       2021-01-16 13:24:30 +08:00 via Android
    这个需求跟 jenkins 关系不大。


    每次发发布时手动选择发布的模块?

    那么每次判断哪些模块要发布,对应的版本。这个判断的数据来源是哪里呢

    数据来源打通做过关联自动化触发就行了。

    如果每次发哪些没有个可靠的逻辑。那么做其他啥都没用
    ghwolf007
        5
    ghwolf007  
       2021-01-16 14:12:39 +08:00
    @yang957862615 先按照 4 楼说的梳理清楚发布逻辑,共享库可以帮助你更优雅的实现更复杂的逻辑。
    Mithril
        6
    Mithril  
       2021-01-16 14:28:24 +08:00   1
    本质上不要用 CI 系统做太多事,尤其是依赖管理这种。它不是拿来干这个的。用好你对应语言的依赖管理功能,然后通过 CI 生成配置文件或者环境变量写进去就好了。
    特别是 Jenkins 这种做的不太行的 CI,当年用 Jenkins 是没得选,现在产品这么多,真的不想再配这东西去了。配置管理,插件管理,头疼的不行。更别说那个码农审美的 UI 了,甚至连最基本的对齐都做不到。
    div id="r_10074508" class="cell">
    xuanbg
        7
    xuanbg  
       2021-01-16 16:08:00 +08:00
    拆项目,每个项目 1 个模块。
    25OHd2qObJmJ6P10
        8
    25OHd2qObJmJ6P10  
       2021-01-16 16:34:34 +08:00 via iPhone
    微服务化
    akira
        9
    akira  
       2021-01-16 17:45:42 +08:00
    @Mithril 推荐几个产品?
    yang957862615
        10
    yang957862615  
    OP
       2021-01-16 20:33:10 +08:00
    @calmzhu 感谢回复,我的想法是通过 webhook 传递一个参数来实现,但是一直没搜到相关资料,如果您有经验请赐教
    yoyos
        11
    yoyos  
       2021-01-16 20:45:34 +08:00
    前段时间做过一个类似的工作,gitlab webhook 回调,根据发生变更的文件所在的目录,判断出是哪些模块需要构建,然后执行对应的任务就行了。
    用了共享库实现,但是 jenkins 确实拉垮,调试非常不方便
    calmzhu
        12
    calmzhu  
       2021-01-16 22:56:14 +08:00
    @yang957862615

    这卡在哪了。
    jenkins 可以通过 http api 直接构建任务并把参数穿过来的。有写过轮子。可以参考下

    代理类
    https://paste.ubuntu.com/p/cPpPbnkt6k/
    配置类
    https://paste.ubuntu.com/p/Pk79x2v3Wp/
    测试类
    https://paste.ubuntu.com/p/MP8RpNG5PG/

    配置示例:
    jenkins:
    base: 'https://jenkins.devops.yiwenjin.cn'
    username: 'xxxxx'
    token: 'xxxxx'
    yang957862615
        13
    yang957862615  
    OP
       2021-01-17 10:39:05 +08:00
    @calmzhu 感谢感谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     901 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 19:37 PVG 03:37 LAX 12:37 JFK 15:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86