例如
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 配置 |