I’ve been really happy with just[1]. Make is great, and just extracts what is one of the best features of make (task runner with dependencies) and makes it a standalone tool. I use it for docker builds, or pretty much as a wrapper around any polyglot repos I create.
[1]: https://github.com/casey/just