This is a proof of concept about Bazel and Mono-repositories which services implemented by Golang.
The idea of mono-repo give us many benefits but come with a challenge about how to testing and build fast and efficient. Bazel is the building tools from Google which come with a concept of incremental build and test. So, we can leverage from this concept to build and test fast and solve the challenge of mono-repo.
You need to install Bazel -- a building tool from Google
- Run
bazel run //:gazelle
to generateBUILD
for each package including update dependencies - Run
bazel run //:gazelle -- update-repos -from_file=__PATH_TO_GO_MOD_FILE__/go.mod
to update external dependencies in WORKSPACE - Run
bazel test --test_output=streamed //...
to test all service. You can see which test using a cache or not. And it's also testing other services if they depend on each other - Run
bazel build //...
to build all service. Same as the testing, it uses the cache and builds all dependencies service
- Pichet Itngam
This project is licensed under the MIT License