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