Details
-
Sub-task
-
Status: Resolved
-
P2
-
Resolution: Fixed
-
None
Description
GoGradle has never been updated to handle Go Modules, and it turns out it leaves .gogradle folders everywhere, which contain it's local gopath, and it's non-writable mod caches. This was the root cause of https://issues.apache.org/jira/browse/BEAM-12829.
The solution is to stop using it, as it's never been ideal for our use, and replace it with direct shellouts to the go command.
The main functionality that needs replacing is getting and using a set Go version so we can be sure what we're testing/validating against and building with, and using a common GoPath/ModuleCache throughout the repo. Otherwise, most instances can be replaced with simple tasks that call the Go function.
A single module cache, if able to be reused across jenkins builds will also reduce build times. Note that these are for external versioned dependencies anyway, and not for Beam repo code.