I write a lot of Makefiles for projects that contain no C and never will. Not to compile anything, just to remember things. A Makefile is, underneath the historical baggage, a list of named commands with dependencies between them, and that turns out to be exactly what most projects actually want.
Every repo I touch gets a handful of the same targets. make test, make lint, make run, make flame if I've been profiling. The point is that I never again have to remember the precise incantation of flags, the right environment variables, or which directory the thing expects to be run from. I type make test and the knowledge lives in the file instead of in my head.
The one tax worth paying up front:
.PHONY: test lint run
test:
go test ./...
lint:
golint ./...
The .PHONY line tells make these targets aren't files, so it doesn't get confused when a directory called test happens to exist. Forget it once and you'll spend ten baffled minutes wondering why make test says "nothing to be done".
Yes, there are nicer task runners now. But make is on every box already, the syntax is ugly enough that nobody's tempted to be clever in it, and a new colleague can read the whole thing in thirty seconds. For a command catalogue, ugly and universal beats elegant and absent.