All of @s0xzwasd’s suggestions, plus:
- Go toolchain in a container image
- Install Go versions as described in Managing Go installations - The Go Programming Language and use the versioned command name to invoke the desired version (e.g., “go1.13.1”).
But the question is, do you really need different Go versions?
For most development needs, the latest Go version is usually the best choice. Due to the Go 1 Compatibility Promise, all your old and older and super old code should work seamlessly with the latest compiler version.