V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
qW7bo2FbzbC0
V2EX  ›  程序员

多服务项目如何接入 ci?

  •  
  •   qW7bo2FbzbC0 · 2021-07-29 12:06:33 +08:00 · 1881 次点击
    这是一个创建于 1238 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如

    DirectoryX:
    	project-common
        project-broker
        project-api
        project-consumer
    

    1.如果把 DirectoryX 作为一个 git 项目,如何使用 gitlab-ci.yml 做到在 api 或者 broker 变动时仅更新需要更新的制品?

    2.如果把 broker,api,consumer 作为单独的 git 项目,在代码编写和查阅其他关联服务时会麻烦的多

    14 条回复    2021-07-30 15:55:14 +08:00
    vemier
        1
    vemier  
       2021-07-29 12:12:50 +08:00
    gitlab-ci 可以用 commit message 触发指定模块的 ci
    xzysaber
        2
    xzysaber  
       2021-07-29 13:06:37 +08:00
    每个项目单独提供一个 Dockerfile 行不行?
    SoloCompany
        3
    SoloCompany  
       2021-07-29 13:09:22 +08:00 via iPhone
    写脚本很好解决的事情
    qW7bo2FbzbC0
        4
    qW7bo2FbzbC0  
    OP
       2021-07-29 13:42:00 +08:00
    @vemier #1 哥哥可以举个例子吗,谢谢了
    qW7bo2FbzbC0
        5
    qW7bo2FbzbC0  
    OP
       2021-07-29 13:42:25 +08:00
    @SoloCompany #3 是 make 脚本吗?
    SoloCompany
        6
    SoloCompany  
       2021-07-29 13:52:03 +08:00
    @hjahgdthab750 #5 你自己熟悉什么语言就用什么语言, 甚至直接 bash 都可以, 我选择 nodejs 便于处理一些更复杂一些的逻辑
    xuanbg
        7
    xuanbg  
       2021-07-29 14:22:37 +08:00
    broker,api,consumer 在你的项目里面是不是不同的模块?你把模块改成包试试?
    vemier
        8
    vemier  
       2021-07-29 14:25:32 +08:00
    xuanbg
        9
    xuanbg  
       2021-07-29 14:26:40 +08:00
    都微服务了,就别再搞多模块项目了吧。有公共依赖,打个包发到 maven 私服上面,pom 引一下就好。
    wenbinwu
        10
    wenbinwu  
       2021-07-29 14:28:31 +08:00
    > 如何使用 gitlab-ci.yml 做到在 api 或者 broker 变动时仅更新需要更新的制品
    检查哪个项目(文件夹)更新了呗
    qW7bo2FbzbC0
        11
    qW7bo2FbzbC0  
    OP
       2021-07-29 15:55:10 +08:00
    @xuanbg #7 不同的模块
    qW7bo2FbzbC0
        12
    qW7bo2FbzbC0  
    OP
       2021-07-29 16:04:47 +08:00
    @xuanbg #9 每个模块一个 git 项目吗
    xuanbg
        13
    xuanbg  
       2021-07-29 16:53:47 +08:00
    @hjahgdthab750 不是每个模块一个 git 项目,而是每个服务都是一个独立项目,每个项目都只有一个模块。看起来没什么区别,但实际上两者完全不是一个事。
    leoskey
        14
    leoskey  
       2021-07-30 15:55:14 +08:00
    可以通过提交信息添加关键字、分支名 、tag 名判断。例如提交分支为 feat-api 开头,则触发 project-api 。或者使用 gitlab-ci.yml 的 only 配置
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1051 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:57 · PVG 02:57 · LAX 10:57 · JFK 13:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.