I see a Makefile that looks pretty Unix-y to me, and I don’t see any batch (.cmd or .bat) file to kick the build off. Am I supposed to cobble together a mingw/cygwin and build using the makefile from there? How do people build and package a go multi platform code project like this and then make it easy to build it from windows as well as from linux?
If this was a C project I’d expect to clone a repo, configure make and install. There is no standard make tool on Windows, and no build notes about the windows build process in the readme.
I have go installed but go install alone does not work because I guess go has some kind of manual dependency fetching bundling/package management stages (using several different optional sets of possible tools, if I have read correctly) that you do before you actually do the main go build step.
I am totally inexperienced in Go, and this is the first Go project I’ve ever checked out and I have to say, it seems to me that it’s like Go projects when you get them are not exactly obvious as to how to use them.
Update: I have installed IntelliJ and the Go plugin and this really helps me figure out why the code won’t build for me. I’m stuck with an error in cache.go:
..\src\gitlab.com\gitlab-org\gitlab-ci-multi-runner\shells\cache.go:63: cannot assign *url.URL to url (type string) in multiple assignment ..\src\gitlab.com\gitlab-org\gitlab-ci-multi-runner\shells\cache.go:97: cannot assign *url.URL to url (type string) in multiple assignment
The source line 63 in cache.go is:
url, err = scl.PresignedGetObject(cache.BucketName, objectName, time.Second*time.Duration(build.Timeout), nil)
I’m guessing some kind of implicit cast that should have happened isn’t happening.