blob: 3cc82c06c4d09edc2ef025c0305f6301ce29ae12 [file] [log] [blame] [view]
## Builders
Build configs (at the top) and host configs (bottom) are listed here:
http://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 http://golang.org/s/builderplan
# How to set up a builder
1. talk to golang-dev@ to get a builder host type & hash (they can get one from e.g. https://build-dot-golang-org.appspot.com/key?builder=host-foo-bar), and put that in ` ~/.gobuildkey` or `~/.gobuildkey-host-foo-bar` or the file pointed to be env var `$GO_BUILD_KEY_PATH`.
1. go get golang.org/x/build/cmd/buildlet
1. Run the buildlet in a loop or under systemd: `while true; do buildlet -coordinator=farmer.golang.org -reverse-type=host-foo-bar -reboot=false; done`
1. Verify you can see the host registered at https://farmer.golang.org/#pools in the "Reverse pool machine detail" section and "Reverse pool summary".
1. Add a builder type to https://github.com/golang/build/blob/master/dashboard/builders.go (see the `addBuilder` lines). Run tests. Send the CL.
1. Have golang-dev deploy it.
## Old-style builders
Older-style builders are listed below. These builders are configured and run manually. The bug https://github.com/golang/go/issues/21191 tracks migrating the remaining ones over to the new system.
| **title** | **description** | **owner** | **notes** |
|:----------|:----------------|:----------|:----------|
| nacl-arm-cheney | Raspberry Pi 3 | @davecheney | |
| openbsd-arm | SolidRun CuBox-i4Pro, ARM Cortex A9 R2 792 MHz, 2GB RAM | @4a6f656c - Joel Sing | |
| plan9-arm | Raspberry Pi 3 Model B | @0intro - David du Colombier | Plan 9 from Bell Labs |
| plan9-amd64-9front | VM | @0intro - David du Colombier | 9front |
# Builder Requirements
* internet connection (at least be able to access Google and http://build.golang.org)
* preferably with two or more (V)CPUs, as at least one test (` sync/atomic ` requires ` runtime.NumCPU() > 1 ` to test more completely)
* at least 512MiB of memory (1GB or more highly recommended. 512MB might need a small `GOGC` setting to avoid thrashing.)
# Restrictions
* The combination of Ubuntu 11.10 or 12.04 OMAP4 kernel and pandaboard (ES) have proven unstable as builders. See [issue 4305](https://code.google.com/p/go/issues/detail?id=4305). Make sure you have updated to the latest available 12.04.2 release.