我的 go 项目有一个 monorepo 设置。如果我能找到一种方法来使用 go build(或类似的内部工具)来获取需要重新构建的目标列表,我会很高兴。
这是我正在寻找的示例:
...
├── pkg //shared code across mono repo
│ └── math
│ └── common_operations.go
└── cmd // individual packages to be built
├── package1
│ └── main.go
└── package2
└── main.go
package1 程序调用数学共享库中的减法函数。package2 程序调用一个 add 函数。
如果我更改 package1 代码,则仅列出 package1 目标
如果我更改 package2 代码,则仅列出 package2 目标
如果我更改共享库中的添加函数,则只会列出 package2 目标
如果我更改共享库中的减法函数,则只会列出 package1 目标
如果我更改共享库中的所有函数,package1 和 package2 都会重建。
我非常乐意使用内部构建包并以编程方式获取列表。我只是不熟悉它。
我尝试过的方法: Bazel 对此有一个选项,但我宁愿尽可能避免使用 bazel。bazel 命令:bazel build cmd/some-target --check_up_to_date
如果它是最新的,则返回错误代码 0,否则返回错误代码 1。这在技术上是一个解决方案,但正如您可能已经推断的那样,我的需要是基于 ci/cd 的。我想尽可能避免将 Bazel 集成到该过程中。
慕婉清6462132
开满天机
相关分类