Build configs (at the top) and host configs (bottom) are listed here:
https://farmer.golang.org/builders
A builder runs on a certain host type. (e.g. linux-386-387
is a build type. It runs on host-linux-kubestd
, a Kubernetes-based linux/amd64 host)
They come from the file https://github.com/golang/build/blob/master/dashboard/builders.go
For design details about the coordinator, see https://golang.org/s/builderplan
golang.org/x/build/cmd/genbuilderkey
tool), and put that in ~/.gobuildkey
or ~/.gobuildkey-host-foo-bar
or the file pointed to by env var $GO_BUILD_KEY_PATH
.go get -u golang.org/x/build/cmd/buildlet
buildlet -coordinator=farmer.golang.org -reverse-type=host-foo-bar -reboot=false
For WIP ports, the steps above can be done out of order as needed. But as a port matures, be sure each step above is done. In particular, make sure that you're not just running a fixed copy of the buildlet binary in a loop forever. We need to be able to update it over time without your involvement. You should be running the stage0 binary (or equivalent shell script or similar for your platform) in a loop instead.
GOGC
setting to avoid thrashing.)Generally, community-run builders only run code that's already been reviewed & submitted. We only enable pre-submit testing for builders run by the Go team that have a lot of hardware available. However, the Gomote tool is available for a number of people on the Go team and in the Go community that lets them have arbitrary access to the builders for development & debugging.
For paranoia reasons, you might want to run your builder in an isolated network that can't access any of your internal resources.