ci: use asdf to manage tool versions
Created by: ggilmore
Fixes: https://github.com/sourcegraph/sourcegraph/issues/6862
Depends on: https://github.com/sourcegraph/infrastructure/pull/1740
This only handles Go, Yarn, and Node for now, but we can install other things like hadolint, postgres, comby, etc. in the future with asdf.
The only slightly annoying thing is that you have to run asdf reshim golang
any time you go get
something: https://github.com/kennyp/asdf-golang#when-using-go-get
This is because asdf has no way of knowing that your go
command ended up doing something that needs to have a new shim
created for it.