多服务项目如何接入 ci?

2021-07-29 12:06:33 +08:00
 qW7bo2FbzbC0

例如

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

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

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

1862 次点击
所在节点    程序员
14 条回复
vemier
2021-07-29 12:12:50 +08:00
gitlab-ci 可以用 commit message 触发指定模块的 ci
xzysaber
2021-07-29 13:06:37 +08:00
每个项目单独提供一个 Dockerfile 行不行?
SoloCompany
2021-07-29 13:09:22 +08:00
写脚本很好解决的事情
qW7bo2FbzbC0
2021-07-29 13:42:00 +08:00
@vemier #1 哥哥可以举个例子吗,谢谢了
qW7bo2FbzbC0
2021-07-29 13:42:25 +08:00
@SoloCompany #3 是 make 脚本吗?
SoloCompany
2021-07-29 13:52:03 +08:00
@hjahgdthab750 #5 你自己熟悉什么语言就用什么语言, 甚至直接 bash 都可以, 我选择 nodejs 便于处理一些更复杂一些的逻辑
xuanbg
2021-07-29 14:22:37 +08:00
broker,api,consumer 在你的项目里面是不是不同的模块?你把模块改成包试试?
vemier
2021-07-29 14:25:32 +08:00
xuanbg
2021-07-29 14:26:40 +08:00
都微服务了,就别再搞多模块项目了吧。有公共依赖,打个包发到 maven 私服上面,pom 引一下就好。
wenbinwu
2021-07-29 14:28:31 +08:00
> 如何使用 gitlab-ci.yml 做到在 api 或者 broker 变动时仅更新需要更新的制品
检查哪个项目(文件夹)更新了呗
qW7bo2FbzbC0
2021-07-29 15:55:10 +08:00
@xuanbg #7 不同的模块
qW7bo2FbzbC0
2021-07-29 16:04:47 +08:00
@xuanbg #9 每个模块一个 git 项目吗
xuanbg
2021-07-29 16:53:47 +08:00
@hjahgdthab750 不是每个模块一个 git 项目,而是每个服务都是一个独立项目,每个项目都只有一个模块。看起来没什么区别,但实际上两者完全不是一个事。
leoskey
2021-07-30 15:55:14 +08:00
可以通过提交信息添加关键字、分支名 、tag 名判断。例如提交分支为 feat-api 开头,则触发 project-api 。或者使用 gitlab-ci.yml 的 only 配置

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792449

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX