Context: multiple git repositories in different languages building various front-end and back-end projects. Some repos build a single app, others build multiple distinct targets. Some builds/apps can be configured by editing config files. Build processes are one or more commands.
What I want: a unified way to build and run these projects, so that someone familiar with our conventions can, without reading documentation specific to the repo:
- figure out which apps exist in a given repo
- build any of them (with a single command)
- run any of them (with a single command)
- easily configure them for common scenarios (e.g. “use the backend service that is running on a shared server” vs. “use the backend service I have running locally on a known port”)
In my mind this seems like maybe what Bazel can do. But is it? The docs are slightly inscrutable at a casual glance (everything is defined in terms of everything else) and People I Trust have said “hmm maybe don’t” when I mentioned I was looking at Bazel.
Any opinions out there?
Edit: I should add that I want this to be nonintrusive. I want to add support for “a better way” without breaking any existing tools or processes, so that this can be a gradual migration to “see I told you this was easier”.