Граф коммитов

406 Коммитов

Автор SHA1 Сообщение Дата
Bryan C. Mills cd1c6e10e5 cmd/coordinator: provide a GOPROXY for vetall and all subrepo builds
Also allow individual builders to override GOPROXY explicitly.

The vetall builder expects to build golang.org/x/tools from a specific
revision, and in module mode that implies that it needs access to all
of the module dependencies of that revision.

The individual subrepo builders may need a GOPROXY to resolve
dependencies when the default value of GO111MODULE changes to "on",
since they will enter module mode automatically even though they are
running within GOPATH.

Updates golang/go#30228

Change-Id: I40f6f2ea3c5ed05eaaaf3503ba97e6ccd3f20e1f
Reviewed-on: https://go-review.googlesource.com/c/build/+/165738
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-03-06 19:52:33 +00:00
Brad Fitzpatrick 6f5117144c cmd/coordinator: test x/mobile on android emu builders; and exp on some
Updates golang/go#23824

Change-Id: Iee70bcbfef6a271fdd26694d848a703a200dc0c0
Reviewed-on: https://go-review.googlesource.com/c/164478
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-28 21:59:39 +00:00
Brad Fitzpatrick cfe14ab80e env/android-amd64-emu: add new Android emulator container + VM image
Now that we can do nested virtualization on GCE, that means we can run
the Android emulator (which requires KVM) on GCE and at least get
fast trybots and such for android-amd64.

Updates golang/go#23824

Change-Id: I0da38c7fa0f15492230a31291d2921ba72f2151d
Reviewed-on: https://go-review.googlesource.com/c/163738
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-28 06:36:16 +00:00
Brad Fitzpatrick 34b995b40b cmd/coordinator, dashboard: scale test exec timeouts by GO_TEST_TIMEOUT_SCALE
So slow builders can finish their cgo tests, etc.

Updates golang/go#29177 etc

Change-Id: If5ee8d2201dc53ab506d4f5e31406d6aae240352
Reviewed-on: https://go-review.googlesource.com/c/162540
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2019-02-14 04:23:18 +00:00
Brad Fitzpatrick 70a5fe4614 cmd/coordinator: use historical test timing data for critical path scheduling
We previously hard-coded a Linux-only static map of 2015 data in for
the critical path scheduling of cmd/dist tests over N sharded
buildlets. That worked well only for Linux and only in 2015.

Instead, query BigQuery to find out what the recent timing data looks
like for all builders.

I'd started to work on this back in CL 30716 (Oct 2016) but apparently
never finished. Yay me. But skip the writing-to-CSV step. BigQuery is
much faster than I remember (maybe it got faster?), so just query it
directly. The query takes about 2 seconds, and we only do it every
hour (which is still overkill; daily is probably fine).

Change-Id: I498fc09dfaf24fb1f11b2c0ab4b952b2f15f9c32
Reviewed-on: https://go-review.googlesource.com/c/160037
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2019-01-30 21:44:06 +00:00
Dmitri Shuralyov ad59fb13d3 dashboard, cmd/coordinator, maintner/maintnerd: add support for BuildConfig.MinimumGoVersion field
The new BuildConfig.MinimumGoVersion field specifies the minimum
Go version the builder is allowed to use. It's useful when some
of the builders are too new, and do not support all of the supported
Go releases (e.g., openbsd-amd64-64 and freebsd-amd64-12_0 currently
require Go 1.11 and don't work on Go 1.10).

It only needs to be set when a builder doesn't support all supported
Go releases, since we don't typically test unsupported Go releases.

To allow cmd/coordinator to use this field and filter out work it
receives from maintner/maintnerd's GoFindTryWork RPC call,
we add a GoVersion slice to apipb.GerritTryWorkItem,
and populate it in maintapi.apiService.GoFindTryWork method.

For trybots on the Go repo, the GoVersion field is determined from
the branch name. For "release-branch.goX.Y" branches, it parses out
the major-minor Go version from the branch name. For master and
other branches, it assumes the latest Go release.

For trybots on subrepos, we already have the Go version information
available, so use it directly.

Afterwards, all that's left is to modify newTrySet in cmd/coordinator
to make use of BuildConfig.MinimumGoVersion and work.GoVersion to skip
builders that are too new for the Go version that needs to be tested.

Fixes golang/go#29265

Change-Id: I50b01830647e33e37e9eb8b89e0f2518812fa44f
Reviewed-on: https://go-review.googlesource.com/c/155463
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-25 01:45:18 +00:00
Brad Fitzpatrick d960d82cca cmd/coordinator: support testing subrepos that use modules
Only the "oauth2" and "build" repos for now, as a test. We'll lock
down policy more later and decide when to do this automatically.

Also, this currently only runs buildlets which run in our GCP project,
because we're not yet proxying the a localhost:3000 port from the
reverse buildlets to an authenticated TLS connection back to our
module proxy service on GKE.

Updates golang/go#14594
Fixes golang/go#29637

Change-Id: I6f05da2186b38dc8056081252563a82c50f0ce05
Reviewed-on: https://go-review.googlesource.com/c/157438
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2019-01-14 18:53:55 +00:00
Brad Fitzpatrick 532581ba91 all: add linux build tags for linux-only tools
Part of getting the x/build repo passing on the builders.

Change-Id: I3f2055cbe91c03ddc0a5152bfdbc0f377f354f47
Reviewed-on: https://go-review.googlesource.com/c/157441
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-11 03:37:26 +00:00
Dmitri Shuralyov 07f3a29356 cmd/coordinator: remove obsolete reference in comment
subTryBuilders no longer exists, it was factored out into another
package in CL 145157. That logic now happens within the call to
dashboard.TryBuildersForProject function. Remove the reference to it
since it's inaccurate and confusing.

Change-Id: I74d57717541a4ee4fe57f3ae9f46d3fc097cfce1
Reviewed-on: https://go-review.googlesource.com/c/155462
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-12-21 18:01:08 +00:00
Dmitri Shuralyov 56e5e74f26 cmd/coordinator: move skip branch policy into dashboard
This change takes care of a TODO comment. It makes the builder
configuration more centralized and contained in the dashboard
package.

Invert it for consistency with BuildConfig.BuildRepo method.

Updates golang/go#26791

Change-Id: I46368adadb85f2ec730da4fc0abe5fd6a112a7c7
Reviewed-on: https://go-review.googlesource.com/c/149738
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-11-15 17:34:50 +00:00
Brad Fitzpatrick 5be0a1373d cmd/coordinator: install x/tools in $GOPATH for misc-vetall builder
This change is required for Alan's vet refactor and change to how
vetall works in CL 149097.

Change-Id: Ia7864c1b2430c696a457d3f0de2820b9037d78ab
Reviewed-on: https://go-review.googlesource.com/c/149658
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-11-15 16:38:45 +00:00
Brad Fitzpatrick c310380904 cmd/coordinator: fix trybot remaining builds count for subrepos
Fixes assumption broken by https://golang.org/cl/143538 where number
of builders (types of builders) no longer equals the number of trybot
builds. (We now run linux-amd64 1 or 3 times depending on the repo)

Fixes golang/go#28714

Change-Id: I3b85adbb79508890d16311fc75f4b48ffc1f3c78
Reviewed-on: https://go-review.googlesource.com/c/149437
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-11-14 00:51:30 +00:00
Brad Fitzpatrick ee8efd410a cmd/coordinator: fix another UI issue with trybots against old Go releases
Updates golang/go#28580
Updates golang/go#17626

Change-Id: Ifa88e4ad23e823e5d1a25c46b76afb11b4e7907b
Reviewed-on: https://go-review.googlesource.com/c/147497
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-11-06 05:20:08 +00:00
Brad Fitzpatrick 2850507cf0 cmd/coordinator: improve UI when running subrepo trybots against diff branches
Fixes golang/go#28580

Change-Id: I98875451bfc1219624de55273011fc849a308b62
Reviewed-on: https://go-review.googlesource.com/c/147338
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-11-05 15:53:40 +00:00
Brad Fitzpatrick c517aed181 dashboard, cmd/coordinator: move more config out of coordinator into dashboard
And with the increased flexibility, enable trybots for more repos for
the "sys" project. Details:

https://github.com/golang/go/issues/24893#issuecomment-433517519

Fixes golang/go#24893

Change-Id: I89ce6f219be986201332f8fad11c774bdd6246da
Reviewed-on: https://go-review.googlesource.com/c/145157
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-10-29 18:32:49 +00:00
Brad Fitzpatrick 5eb896e234 all: change dashboard.BuildConfig to be a pointer type, like HostConfig
BuildConfig grew way too large and has too many slices & such to be a
value type. Make it a pointer type, which matches HostConfig.

Change-Id: Ie625bece9d6d8c1ec6cff26e77416bd9b1f256d8
Reviewed-on: https://go-review.googlesource.com/c/145077
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-10-29 18:28:51 +00:00
Brad Fitzpatrick c8126a05c0 cmd/coordinator: run subrepo trybots against recent Go release branches
This is the coordinator half of the change to make the coordinator
test subrepos against two prior releases of Go.

The next change that's required is for the maintnerd API server to
return the name of the past two releases.

For now this change is a no-op. But once maintnerd starts returning
more data, then this change will start causing causing two more
linux-amd64 builders per subrepo trybot.

Updates golang/go#17626

Change-Id: I1cedbc2e4eee51fb003c8bcc8e072fd10717a833
Reviewed-on: https://go-review.googlesource.com/c/143538
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-10-29 18:27:53 +00:00
Brad Fitzpatrick 0c1c3ca8ea cmd/coordinator: start of a scheduler, not yet enabled
Updates golang/go#19178

Change-Id: I24aa368df01a85259b53d6cfb08de7ab3a80e4fe
Reviewed-on: https://go-review.googlesource.com/132076
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-09-26 21:33:20 +00:00
Brad Fitzpatrick 1329dced3a cmd/coordinator: delete some ancient, unused shutdown code
The coordinator used to run on GCE and for some reason (graceful
upgrades, freeing up memory leaks?), the process would exit after it
had been up for 10 minutes and had no work to do.

Delete that. We run on Kubernetes now and don't need graceful upgrades
and shouldn't be leaking resources. (If we do, we should be fixing
that instead.)

Also it appears that this code no longer does anything.

Change-Id: I9b5f2881692117b7c99dd2e513ee146f43170791
Reviewed-on: https://go-review.googlesource.com/132075
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-09-04 20:50:33 +00:00
Brad Fitzpatrick 6ae8750e84 all: use Container-Optimized VMs instead of Kubernetes for buildlet containers
Fixes golang/go#25108

Change-Id: I084669b52b699700ed26a7fdd890d9205a8b9dc9
Reviewed-on: https://go-review.googlesource.com/111267
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2018-05-11 03:29:07 +00:00
Brad Fitzpatrick 14d99737ae all: rename Kube to Container and IsGCE to IsVM
Once containers run on COS instead of Kubernetes, one name (Kube*) is
wrong and the other (GCE) is ambiguous. So rename them now to be more
specific.

No behavior changes. Just renaming in this step, to reduce size of
next CL.

Updates golang/go#25108

Change-Id: Ib09eb682ef74acbbf6ed50b46074f834ef5e0c0b
Reviewed-on: https://go-review.googlesource.com/111639
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-05-05 16:50:07 +00:00
Kevin Burke 0008c9638d cmd/coordinator: remove gofmt inconsistency
Issue golang/go#22852 modifies formatting for Go tables. If the
code stays as is, users running Go 1.9 will format the file one way
and users running tip will format the file a different way. This is
problematic when git-codereview attempts to check the file is gofmt'ed
correctly, and does not let you mail commits that aren't.

Adding another newline makes the file compatible with tip and the
stable release branch and avoids this problem.

Change-Id: I0dbfe01db6e07578993e793e3710702ff2518436
Reviewed-on: https://go-review.googlesource.com/104836
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-04-05 05:13:34 +00:00
Kevin Burke d742befa4d cmd/coordinator: style the "trybot status" page
Load style.css so we share some styles with the Go Build Coordinator
homepage. Add some custom styles so text in tables is a little bigger
- there's less of it on the trybot page.

Instead of formatting to the nearest tenth of a minute, we can round
to the nearest second - Duration.Round() is now two Go versions old
- and use more natural duration formatting.

Instead of issuing many small writes to the ResponseWriter, write HTML
to a buffer and then write it to the ResponseWriter all at once. (We
should just use a template but that's a bigger project.)

Add a "/try-dev" handler you can enable with the `-dev` build tag
which makes it easy to view and test the "trybot status" page locally,
without requiring a builder.

Change-Id: I28617d02ed857c28d2bb2d9ccfb05ca9dc572212
Reviewed-on: https://go-review.googlesource.com/103870
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-04-02 16:16:46 +00:00
Andrew Bonventre ed63073cfb cmd/coordinator: allow CORS requests to /try.json
Allow any origin to make cross-origin requests to get builder
statuses.

Also fixes a bug with an ineffectual Header().Set(...) call since
WriteHeader was called before it.

Change-Id: Ic2867624a286dad7268ddb94c3bb5afb52bf84ac
Reviewed-on: https://go-review.googlesource.com/98995
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-03-06 20:25:51 +00:00
Andrew Bonventre 08b634734f cmd/coordinator: add /try.json endpoint
To retrieve results of a trybot run in JSON.

Also removes optional HTML tags from normal trybot
status output.
https://google.github.io/styleguide/htmlcssguide.html#Optional_Tags

Change-Id: I369806fcab439da9d9ce9c46f4d6f1d94c54e814
Reviewed-on: https://go-review.googlesource.com/98237
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-03-06 18:09:42 +00:00
Brad Fitzpatrick 3aff3a7fc2 cmd/coordinator: enable HTTP ACME challenges
Updates golang/go#23627

Change-Id: Ice459e272c0d55a2bf27891aa8a97338e14d1d52
Reviewed-on: https://go-review.googlesource.com/91235
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2018-01-31 21:59:59 +00:00
Brad Fitzpatrick 2da300d9db cmd/coordinator: don't test subrepos on NetBSD for Go 1.8 and Go 1.9
Fixes golang/go#23102

Change-Id: Ie950ee92a3ece4a968a294aa1c5db2d65b5cf468
Reviewed-on: https://go-review.googlesource.com/83576
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2017-12-12 22:28:42 +00:00
Brad Fitzpatrick 7b0a998efa cmd/coordinator, dashboard: add mac race builder, skip redundant trybot tests
This adds a darwin-amd64-race builder. Of the four platforms that
support the race detector, this was the only one missing a builder.

To make up for the extra work, skip some redundant tests that the Mac
(and other) builds do. The test directory is really slow, and doesn't
have platform-specific code. We have amd64 & 386 test coverage for
that directory via the Linux builders, which is fine. No need to do it
on some of the heavier VM builders, or for trybots.

Fixes golang/go#17674

Change-Id: I888119b3fdd28884b87a59d78746ab1fef6960c7
Reviewed-on: https://go-review.googlesource.com/82395
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-12-07 03:32:54 +00:00
Russ Cox d1037ce935 cmd/coordinator: attempt to run newer work before older work on buildlets
The problem is especially severe on the slow builders,
like darwin/arm64, which can sometimes not have run
any commit from the past 12 hours and still pick an old
commit for its next trial. It would be far better for it to
prefer new work.

It's possible that this new logic should be disabled for
some of the auto-scaling builders, but for now it seems
like we can try it for all of them and see if that's OK.

Update golang/go#19178.

Change-Id: I32cc67c0c2c84130b40b250675b40aadb4a0a681
Reviewed-on: https://go-review.googlesource.com/70430
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Sarah Adams <shadams@google.com>
2017-10-20 15:58:28 +00:00
Andrew Bonventre fa4b20e11b cmd/coordinator: update to use new StackDriver error reporting package
Fixes golang/go#22153
Fixes golang/go#22240

Change-Id: Ie26339aa29e2ad5153e85a1b07dd1e97352a0a63
Reviewed-on: https://go-review.googlesource.com/70750
Reviewed-by: Sarah Adams <shadams@google.com>
2017-10-13 18:00:47 +00:00
Russ Cox 9f8a61a0d1 cmd/coordinator: print short trybot summary ahead of very long one
Compiles using 'make docker-prod', but otherwise untested.

Change-Id: Iaf79c7055d09700295da2169befb6e4626006217
Reviewed-on: https://go-review.googlesource.com/68510
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Sarah Adams <shadams@google.com>
2017-10-05 20:12:09 +00:00
Yuval Pavel Zholkover 5d60a93840 cmd/coordinator: don't skip the main go repo on freebsd-arm-paulzhol builder
Fixes golang/go#21403

Change-Id: Iaef6fe2b10482adbfe3921e46defc1d59759f8d0
Reviewed-on: https://go-review.googlesource.com/55094
Reviewed-by: Sarah Adams <shadams@google.com>
2017-08-11 20:18:10 +00:00
Brad Fitzpatrick d89421852a dashboard: test subrepos for freebsd-arm, add more misc-compile builders
Change-Id: I51f3fee3408d99a502887ea6802f6979feb36439
Reviewed-on: https://go-review.googlesource.com/54051
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-08-09 14:49:44 +00:00
Sarah Adams da1460b7c9 cmd/coordinator: add basic Stackdriver error reporting
Fixes golang/go#21148

Change-Id: I2249dbffc6feaa79f755f79fc75916092b190517
Reviewed-on: https://go-review.googlesource.com/50880
Reviewed-by: Tuo Shan <shantuo@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-31 21:35:02 +00:00
Brad Fitzpatrick 7d8c8e4252 maintner/maintnerd, cmd/coordinator: use maintnerd to find TryBot work
Instead of polling Gerrit every 60 seconds, poll maintnerd every
second. This should improve TryBot-requested to TryBot-running latency
by 30 seconds on average.

(Ideally it'd long poll for changes and not even have ~500ms delay,
but this is an improvement.)

Also, in the process this does most of the work for golang/go#17626.
And this cleans up the repo head tracking complication in the coordinator
and just asks maintner for it instead.

Running benchmarks in the coordinator has been disabled since
2017-06-23 but this CL disables it further, removing some code it'd
need to work. But considering that benchmarking would need code
repairs to get working again anyway, I consider this acceptable in the
short term. I left TODO notes.

Updates golang/go#17626
Updates golang/go#19871

Change-Id: Idab43f65a9cca861bffb37748b036a5c9baee864
Reviewed-on: https://go-review.googlesource.com/51590
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2017-07-28 22:26:36 +00:00
Brad Fitzpatrick 4eceee2d0f cmd/coordinator, cmd/buildlet, cmd/gomote: add SSH support
This adds an SSH server to farmer.golang.org on port 2222 that proxies
SSH connections to users' gomote-created buildlet instances.

For example:

    $ gomote create openbsd-amd64-60
    user-bradfitz-openbsd-amd64-60-1

    $ gomote ssh user-bradfitz-openbsd-amd64-60-1
    Warning: Permanently added '[localhost]:33351' (ECDSA) to the list of known hosts.
    OpenBSD 6.0 (GENERIC.MP) golang/go#2319: Tue Jul 26 13:00:43 MDT 2016

    Welcome to OpenBSD: The proactively secure Unix-like operating system.

    Please use the sendbug(1) utility to report bugs in the system.
    Before reporting a bug, please try to reproduce it with the latest
    version of the code.  With bug reports, please try to ensure that
    enough information to reproduce the problem is enclosed, and if a
    known fix for it exists, include that as well.

    $

As before, if the coordinator process is restarted (or crashes, is
evicted, etc), all gomote instances die.

Not yet supported:

* scp (help wanted)
* not all host types are configured. most are. some will need slight
  config tweaks to the Docker image (e.g. adding openssh-server)

Supports currently:

* linux-amd64 (host type shared by 386, nacl)
* linux-arm
* linux-arm64
* darwin
* freebsd
* openbsd
* plan9-386
* windows

Implementation details:

* the ssh server process listens on port 2222 in the coordinator
  (farmer.golang.org), which is behind a GKE TCP load balancer.

* the ssh server library is github.com/gliderlabs/ssh

* authentication is done via Github users' public keys. It's assumed
  that gomote user == github user. But there's a mapping in the code
  for known exceptions.

* we can't give out access to this too widely. too many things are
  accessible from within the host environment if you look in the right
  places. Details omitted. But the Go team and other trusted gomote
  users can use this.

* the buildlet binary has a new /connect-ssh handler that acts like a
  CONNECT request but instead of taking an explicit host:port, just
  says "give me your machine's SSH connection". The buildlet can also
  start sshd if needed for the environment. The /connect-ssh handler
  also installs the coordinator's public key.

* a new buildlet client library method "ConnectSSH" hits the /connect-ssh
  handler and returns a net.Conn.

* the coordinator's ssh.Handler is just running the OpenSSH ssh client.

* because the OpenSSH ssh child process can't connect to a net.Conn,
  an emphemeral localhost port is created on the coordinator to proxy
  between the ssh client and the net.Conn returned by ConnectSSH.

* The /connect-ssh handler requires http.Hijacker, which requires
  fully compliant net.Conn implementations as of Go 1.8. So I needed
  to flesh out revdial too, testing it with the
  golang.org/x/net/nettest package.

* plan9 doesn't have an ssh server, so we use 0intro's new conterm
  program (drawterm without GUI support) to connect to plan9 from the
  coordinator ssh proxy instead of using the OpenSSH ssh client
  binary.

* windows doesn't have an ssh server, so we enable the telnet service
  and the coordinator ssh proxy uses telnet instead on the backend
  on the private network. (There is a Windows ssh server but only in
  new versions.)

Happy debugging over ssh!

Fixes golang/go#19956

Change-Id: I80a62064c5f85af1f195f980c862ba29af4015f0
Reviewed-on: https://go-review.googlesource.com/50750
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Jessie Frazelle <me@jessfraz.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-28 18:21:11 +00:00
Brad Fitzpatrick 48ba4a25a9 cmd/coordinator: delete duplicate struct field
tryKey had both a Project and Repo string field, and both had the same
value from Gerrit. Delete Repo and use Project (the Gerrit term) instead.

Change-Id: Ie1a68376a980dfc2b839544bc56faa63655ddb58
Reviewed-on: https://go-review.googlesource.com/51530
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-27 13:57:23 +00:00
Brad Fitzpatrick 32be5e872e cmd/coordinator: delete some code earlier copied to the buildgo package
Change-Id: I7244c0d272a112adb6682793eca8563fc3c78e49
Reviewed-on: https://go-review.googlesource.com/51433
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-27 13:56:41 +00:00
Tuo Shan 96d2380bdc cmd/coordinator: add basic monitoring for reverse buildlets
Carried over from https://golang.org/cl/47490.

Updates golang/go#15760

Change-Id: I8b4cc007dea8e32a23cac4cb13bb313d9ec5d4ac
Reviewed-on: https://go-review.googlesource.com/47934
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-20 17:38:44 +00:00
Brad Fitzpatrick b2cc0a73e8 dashboard: disable FreeBSD 9.3 and 10.1 builders, move trybots to FreeBSD 11
FreeBSD 9.x and 10.x are currently broken on GCE. Move to FreeBSD 11
for Trybots.

Also, disable NetBSD in the config, not in the code.

And disable plan9 and openbsd-386, which are also broken on GCE due to
the same GCE bug.

Change-Id: I86f9b2690f39b6aa76b4bb3a900a4302c9dc7830
Reviewed-on: https://go-review.googlesource.com/50011
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-07-20 01:46:35 +00:00
QiuxuanZhu 77c531d15a cmd/coordinator: change trybot success message
Fixes golang/go#20585

Change-Id: I4208733af69feebb61db846576b19ede290cd5be
Reviewed-on: https://go-review.googlesource.com/45710
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-06-14 16:44:34 +00:00
Brad Fitzpatrick 5aedb5fe08 all: update to grpc.go4.org and grpc-codegen.go4.org package names
Fixes camlistore/go4#30

Change-Id: Id914ac18bb5bed723a14147d239496aa165e1f3a
Reviewed-on: https://go-review.googlesource.com/45272
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-06-09 22:04:38 +00:00
Quentin Smith 2d2dfd477a cmd/coordinator, internal: move benchmark building to separate package
This moves getSourceTgz* to a new package called sourcecache. The
original functions couldn't be left in coordinator.go because that
would cause a single process to have multiple caches.

The code for building and running benchmarks is moved into the buildgo
package, and the public API becomes GoBuilder.EnumerateBenchmarks and
Run on the resulting BenchmarkItem objects.

Updates golang/go#19871

Change-Id: I28b660e1cdaa6d1c6b0378c08de30f5e58316cc6
Reviewed-on: https://go-review.googlesource.com/44211
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-26 19:34:43 +00:00
Quentin Smith 41170a3b04 cmd/coordinator, internal/buildgo: add RunMake
This moves RunMake from coordinator.go, allowing other packages to
build Go on a buildlet.

Updates golang/go#19871

Change-Id: Ic0e7c056020ef434f0620ae816f52b9112ea1c8d
Reviewed-on: https://go-review.googlesource.com/44176
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-26 14:24:25 +00:00
Quentin Smith 9a67679eab cmd/coordinator, internal/buildgo: create buildgo package
This package contains the BuilderRev type moved from cmd/coordinator.

The rest of the CL is simply updating coordinator with the new
exported names of the type and its fields.

This refactoring is in preparation for moving the benchmark building and running
code into a separate package.

(Most of the diff could have been avoided with a type alias, but I
assume we'd rather not do that.)

Updates golang/go#19871

Change-Id: Ib6ce49431c8529d6b4e72725d3cd652b9d0160db
Reviewed-on: https://go-review.googlesource.com/44175
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-26 14:10:59 +00:00
Quentin Smith 2ec582fede cmd/coordinator: create separate spanlog package
This moves main.spanLogger and main.eventSpan to spanlog.Logger and
spanlog.Span. This change is necessary to start pulling build and
benchmark code out of coordinator. The interfaces cannot simply be
copied because Logger contains a function whose return type is
Span, so the interface must be defined in exactly one place.

Updates golang/go#19871

Change-Id: I0a48192e6a5c8f5d0445f4f3d3cce8d91c90f8d3
Reviewed-on: https://go-review.googlesource.com/44174
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-25 23:25:32 +00:00
Quentin Smith 93871fa775 cmd/coordinator: remove buildStatus from most of benchmarks.go
This refactoring is in preparation for moving benchmarks.go to a
separate package.

Updates golang/go#19871

Change-Id: I2b30bf5416937e52b603aec8102131fdccceee42
Reviewed-on: https://go-review.googlesource.com/44173
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-25 20:23:50 +00:00
Quentin Smith 4c7e3b80a2 cmd/coordinator: run benchmarks on modified packages
Change-Id: I9f29323ffd438b20194009126ffa6f5f94494cb6
Reviewed-on: https://go-review.googlesource.com/43631
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-23 19:13:57 +00:00
Brad Fitzpatrick bd4de1f32d cmd/coordinator: move git ancestor checking before buildlet creation, generalize
This also adds GoDeps to the builders config file and adds a
dependency for the ssacheck builder, which currently fails on older
release branches with:

> Failed on linux-amd64-ssacheck:
> https://storage.googleapis.com/go-build-log/1255edaf/linux-amd64-ssacheck_18f7e015.log
>
> ...
> compile: unknown debug key -d dclstack

Change-Id: I4ad0a298705feed56f467f3c8d9488f8be2e4af5
Reviewed-on: https://go-review.googlesource.com/43774
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-19 22:19:29 +00:00
Brad Fitzpatrick 54846897cd cmd/coordinator: don't run racecompile builder on old commits
We still run some of it (at least for now, it's harmless, and in its
own goroutine), but not the -c part.

Fixes golang/go#20222

Change-Id: I37a39a41c8a5f2ebaee70aeba390c58b22399d3d
Reviewed-on: https://go-review.googlesource.com/43619
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-05-18 20:35:19 +00:00
Quentin Smith cd5d4b37a9 cmd/coordinator: populate commit label on benchmarks
This was lost in one of the many refactorings of CL 38306.

Updates golang/go#19871

Change-Id: I4514d4350feb1420861eae9a9dd021fee5b5ba6f
Reviewed-on: https://go-review.googlesource.com/43052
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-10 14:55:32 +00:00
Quentin Smith d5f9cf81ad cmd/coordinator: fix staging instance
- Make URLs point to correct external IP
- Disable windows-amd64-2008 builder type that doesn't exist in
  the staging farm

Updates golang/go#18817

Change-Id: Id64a63694f90e70c4fd78f9d1433ed5031822111
Reviewed-on: https://go-review.googlesource.com/42850
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-05 19:50:38 +00:00
Quentin Smith 71f0c8e1f1 cmd/coordinator: fix staging after CL 41618
linux-arm-arm5 no longer exists as a builder.

Updates golang/go#19662

Change-Id: Ic7dd3ce8a8033a733d286e595b3b2d757cdbb31d
Reviewed-on: https://go-review.googlesource.com/42310
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-05-01 20:12:42 +00:00
Brad Fitzpatrick b1c442439e autocertcache: move coordinator's GCS autocert.Cache impl to its own package
This will also be used by maintner.golang.org shortly.

Updates golang/go#19866

Change-Id: Id952065831920a206e3cb97bd1f451ceaea34927
Reviewed-on: https://go-review.googlesource.com/42146
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-29 03:54:10 +00:00
Brad Fitzpatrick 3aa399bf50 dashboard: revert to stable Windows trybots, reduce racecompile memory usage
Updates golang/go#19962

Change-Id: I4cecc9bea09236897d1bab21ac9b05b826915839
Reviewed-on: https://go-review.googlesource.com/41825
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-27 05:52:51 +00:00
Jeff Wendling 27cd84a2ae cmd/coordinator: support post-submit cross-compiled builds
This adds a boolean to flag a cross compiler config to always be
used for every build, not just when in staging or if it's a try-bot.

It's turned on for the arm5spacemonkey build machines since they take
about 27 minutes to run make.bash.

Fixes golang/go#20118

Change-Id: I13a398d1645a2b5f0c87c5fffc7933922ac1365e
Reviewed-on: https://go-review.googlesource.com/41755
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-25 20:51:01 +00:00
Brad Fitzpatrick 4f5eef0322 cmd/coordinator: make linux-amd64-racecompile rebuild std/cmd with -c=128
Updates golang/go#19962

Change-Id: I8b938a39b33d4e6b9b8dc5bc0802da95e889ee46
Reviewed-on: https://go-review.googlesource.com/41613
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-04-24 21:43:25 +00:00
Brad Fitzpatrick 97a4f81784 dashboard: retire windows-amd64-gce builder, replace with windows-amd64-2008
The windows-amd64-2008 is the same OS as windows-amd64-gce but is an
auto-generated image.

TODO: 386 auto-generated Windows builders, and then maybe we'll move
TryBots to Windows Server 2016. One step at a time. This should be a
no-op.  I verified performance is the same.

Updates golang/go#17513

Change-Id: I34984db14b87d03771e15465978b1687df6895f7
Reviewed-on: https://go-review.googlesource.com/41611
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-24 20:35:01 +00:00
Brad Fitzpatrick da19ce050f cmd/coordinator, cmd/buildstats: start of using logs to schedule tests
We've been logging event spans to datastore for years, but I'd lost
this CL and just found it back. This does two things: syncs the
datastore logs to BigQuery, and starts to use the from-BigQuery timing
info in the coordinator for scheduling sharded tests.

The plan was to have a job occasionally do a BigQuery query and write
out the results to a CSV file on GCS. The code to read that CSV file
is in this CL, but that code path is disabled, so this CL should be a
no-op.

A future change will periodically do the query and write the CSV file,
and then we can start using the new code path and remove the static
map of expected test durations.

Updates golang/go#12669

Change-Id: Ibe5b41d6a3009c2ade8ab728fa1cad646788e621
Reviewed-on: https://go-review.googlesource.com/30716
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-24 15:37:51 +00:00
Brad Fitzpatrick bfca87f98f dashboard, cmd/coordinator: add -racecompile builder
Change-Id: Idc5756f82081de6b5dfd17036f2bfc9cf11c5659
Reviewed-on: https://go-review.googlesource.com/41414
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-04-22 16:07:10 +00:00
Quentin Smith 0d86378958 cmd/coordinator: run benchmarks on try work
Benchmarks are treated as unit tests and distributed to the test
helpers, which allows them to fit in our 5m trybot budget.

Currently we only run the go1 and x/benchmarks. Running package
benchmarks is a TODO.

This feature is disabled by default, and is enabled by the
"farmer-run-bench" project attribute.

Updates golang/go#19178
Updates golang/go#19871

Change-Id: I9c3a14da60c3662e7e2cb4e71953060915cc4364
Reviewed-on: https://go-review.googlesource.com/38306
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-21 21:46:22 +00:00
Quentin Smith 825e158757 cmd/coordinator: fix sanity check
Change-Id: I2ba47f767f8213687b49e057a24d078c4512a5a2
Reviewed-on: https://go-review.googlesource.com/41373
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-21 21:32:37 +00:00
Brad Fitzpatrick 6c1beccd3b cmd/coordinator: support limiting number of builds at once
Change-Id: Icd0054f2b943abf2e8a15c32d358ff06541f75f7
Reviewed-on: https://go-review.googlesource.com/41130
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-19 21:22:20 +00:00
Kevin Burke 63ff9b3403 cmd/coordinator: make durations more human-friendly
Previously we printed duration to seven decimal points after the
second, which isn't helpful or necessary to determine how long a
build took. Instead, round the duration to the nearest tenth of a
second (if the build took more than 10 seconds), the nearest hundredth
of a second (if it took 1-10 seconds), or the nearest tenth of a
millisecond (if it took less than a second), which should be more than
enough precision and is much easier to read.

Change-Id: I1c29d4a81335bf9ee3cddda0a341d3f321e82f6b
Reviewed-on: https://go-review.googlesource.com/40855
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-16 04:09:35 +00:00
Brad Fitzpatrick b911fb9692 dashboard, cmd/coordinator: clean up snapshot code, add snapshot opt-out
The snapshot code had an old workaround that's no longer relevant. Remove it.

Also, add a BuildConfig.SkipSnapshot bool, and use it for the slow
mips builders.

Fixes golang/go#19953

Change-Id: I114bb0a524184eaaae5be4715ce63f6adc519c2e
Reviewed-on: https://go-review.googlesource.com/40505
Reviewed-by: Sarah Adams <shadams@google.com>
2017-04-13 16:27:06 +00:00
Sarah Adams 55adb7fbd5 all: readability tweaks
Change-Id: Icf00e395e7ab52beb8c0f1b57110d84b491bc337
Reviewed-on: https://go-review.googlesource.com/40477
Reviewed-by: Herbie Ong <herbie@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-12 21:01:14 +00:00
Brad Fitzpatrick 5eb74b19b7 cmd/coordinator: add missing skipBuild check
The NetBSD builders were supposed to all be skipped by
buildRev.skipBuild, but there was another code path generating work
(the bootstrap-a-new-builder-column code) that wasn't using skipBuild,
which meant when the NetBSD column totally disappeared (as we wanted),
the builder tried to bring it back to life, doing a bunch of hanging
builds.

Change-Id: I976016a485e241b46f9cf8bb8b371e1038bb5f8c
Reviewed-on: https://go-review.googlesource.com/40470
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-12 17:20:03 +00:00
Brad Fitzpatrick 97bf1fbe10 cmd/coordinator: break up status into active vs pending builds
Currently all builds start and think they're running, but most are
just fighting over a mutex to grab a builder. That will be fixed, but
in the meantime it's nice to see what's actually working vs what's
waiting on e.g. arm5 hardware which won't be available for hours.

This is a baby step towards more monitoring. Currently this is just HTML
output, but the same data could be exported via JSON or something else later
for graphing.

Updates golang/go#19178 (add a buildlet scheduler)
Updates golang/go#15760 (monitor everything)

Change-Id: I36e16ea0919afe8023fe7fedd981f2e857f0d6df
Reviewed-on: https://go-review.googlesource.com/40397
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-12 01:22:14 +00:00
Brad Fitzpatrick c328d04b2e all: misc cleanup, docs, actually add Alpine builder
-- move policy of which builders are trybots out of coordinator
   and into dashboard/builders.go.

-- move some GCE-specific code from coordinator.go to gce.go.

-- rename an old "watcher" reference to "gitmirror"

-- add some docs

-- actually add the Alpine builder, missing from https://golang.org/cl/33890

Fixes golang/go#17891

Change-Id: Ia63671ca09aec322ed57b3663e0ac5042cdc56f2
Reviewed-on: https://go-review.googlesource.com/40395
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-12 00:39:11 +00:00
Quentin Smith d668f06a86 cmd/coordinator: fix potential deadlock in getStatus
Map iteration is random, so it's possible for two simultaneous calls
to getStatus to deadlock due to the use of defer to unlock.

Change-Id: Ib2c0b4122bd5ea17fde5e4c60da1a853a12ed2fd
Reviewed-on: https://go-review.googlesource.com/40301
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-11 21:06:05 +00:00
Quentin Smith 6801a111ca cmd/coordinator: allow fetching logs of in-progress try sets
statusDone contains the last maxStatusDone (currently 30) logs, but
logs for in-progress try sets are still available via the trySet until
the trySet is complete.

Currently, if you go to the main status page of the farmer, there is
an "Active Trybot Runs" section at the top. If you click on the status
link (taking you to /try?commit=xxx), it shows partial logs for each
of the buildlets. However, if you click the /temporarylogs link for
one of those buildlets, you get a 404 if that buildStatus has fallen
off the end of maxStatusDone. This CL makes it so that any
/temporarylogs link you can get from a /try page will always contain
the actual log, which we were already storing in memory anyway.

Change-Id: Ia07b9c8b1a16da23936b9b32e39827e591e3e471
Reviewed-on: https://go-review.googlesource.com/39312
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-11 20:38:10 +00:00
Kevin Burke 88e528585b cmd/coordinator: add tests for buildlet create
Specifically test that the context is not canceled when the create
function returns, which is the case that bit us yesterday. This
still fails "go vet" and we should figure out how to pass the cancel
function down or otherwise restructure the code.

Add the beginnings of a buildlet test framework, which will hopefully
make it easier to write more tests without needing to start up a
cluster or integrate with GCE. It would be nice if buildlet.Client
was an interface, not a concrete type, so we could store various
pieces of information on it and then test for them.

Change-Id: I75acc3252b59110647a8ad8d8f7c7cce66598a17
Reviewed-on: https://go-review.googlesource.com/37146
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-10 22:53:59 +00:00
Brad Fitzpatrick ad0e3fbf01 build: update NetBSD from 7.0 to 7.1, disable builds, add arm64 packet builder
Change-Id: I73b8d6e6ccaeca3b932238448ddcceead34105b4
Reviewed-on: https://go-review.googlesource.com/39851
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-06 22:19:50 +00:00
Kevin Burke 9673075136 all: fix "go vet" errors
The one remaining error reported by "go vet" is the un-canceled
context in cmd/coordinator/remote.go, which isn't an error.

Change-Id: Ie8d9269fc77203cf82d0a724dd33e4871a8113a7
Reviewed-on: https://go-review.googlesource.com/39350
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-03 19:14:46 +00:00
Kevin Burke 7f9d0769a8 cmd/coordinator: fix local development environment
Previously the server would fail to start if a valid token could not
be found. The local development environment still doesn't do much, but
it should let you view and edit the HTML and confirm that the server
starts, so ignore the error if we are running in dev mode.

Add a short README explaining how to start and view the coordinator
server locally.

Fixes golang/go#19828.
Fixes golang/go#18291.

Change-Id: I91a3ce49e1e9ea18ca19f3867edb2c71fc1b5124
Reviewed-on: https://go-review.googlesource.com/39297
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-03 18:44:39 +00:00
Kevin Burke c8b3ea8a0e cmd/coordinator: use stdlib context
The x/crypto/autocert package recently updated to use the context
package in the standard library, which means that cmd/coordinator no
longer works.

Also update the Dockerfile to build the acme/autocert dependency
that was recently added to cmd/coordinator.

Change-Id: I016ba797e1e67c50822c7ac786f502fcc008100b
Reviewed-on: https://go-review.googlesource.com/39330
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-03 18:32:49 +00:00
Kevin Burke 1a0eef6c25 cmd/coordinator: remove documented but invalid option
Starting the coordinator in the "watcher" role makes the binary
immediately exit with an error, so remove it.

Change-Id: Icfe4d7e60d0c7edf6e02804fd3dfcc6f76e4daf7
Reviewed-on: https://go-review.googlesource.com/39293
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-03 17:24:24 +00:00
Kevin Burke 315d0bd287 all: upgrade farmer.golang.org links to https
Since farmer.golang.org has a valid certificate in production now, we
should use that certificate for retrieving data.

Change-Id: I3685d84953ea11e6ac09b4692fa27c73538a565c
Reviewed-on: https://go-review.googlesource.com/39290
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-03 15:15:01 +00:00
Brad Fitzpatrick 8a696e555c cmd/coordinator: add LetsEncrypt support
The buildlets were partially updated to support this in
https://golang.org/cl/38792 but overlooked that ServerName == "go" was
still hard-coded. This CL also fixes that in the buildlet.

Fixes golang/go#16442

Change-Id: Ia2b794bdf9df8ab75875b9951b53a7bb5f5f6afe
Reviewed-on: https://go-review.googlesource.com/38798
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-04-02 17:11:27 +00:00
Quentin Smith f79d260554 cmd/coordinator: try to use gitmirror in staging
Change-Id: Ic57bcb07a5091c1efc3621fcbdccfc7a19505f79
Reviewed-on: https://go-review.googlesource.com/38749
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-03-29 20:44:04 +00:00
Brad Fitzpatrick 6a61e55972 cmd/coordinator: fix retry-forever loop in trybots if cross-compiled make.bash fails
Change-Id: Ia57133aea1c9d7b6b8bd9345efeeefbfc13d75e5
Reviewed-on: https://go-review.googlesource.com/38461
Reviewed-by: Cherry Zhang <cherryyz@google.com>
2017-03-23 17:53:47 +00:00
Jeff Wendling 02f25ac65d cmd/coordinator, dashboard: cross compile linux-arm-arm5spacemonkey
Change-Id: I3a228627ec8236d0d10bb9a1a61443c81493145d
Reviewed-on: https://go-review.googlesource.com/38460
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-03-23 16:15:42 +00:00
Quentin Smith 011f998476 cmd/coordinator: enable staging builds by default
Change-Id: If796b1df593620f17d6cb96f2aa89f5c9a538338
Reviewed-on: https://go-review.googlesource.com/38307
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-03-20 22:01:12 +00:00
Brad Fitzpatrick 5370b53837 cmd/coordinator: skip netbsd-386 builds for now
Updates golang/go#19339

Change-Id: Id9e5247c0ffbddf4bcf0d807840399d3a5dd83c5
Reviewed-on: https://go-review.googlesource.com/37622
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-03-01 05:31:15 +00:00
Brad Fitzpatrick 18a41e7995 cmd/coordinator: fix kubernetes pod cleanup loop
Change-Id: If528d71faa6834d1392f693d252e97f6446939bf
Reviewed-on: https://go-review.googlesource.com/37616
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-03-01 00:01:24 +00:00
Brad Fitzpatrick eb1258212d cmd/coordinator: add a misc-vet-vetall to the trybot set
vet checks for all. josharian rejoices.

Updates golang/go#11041

Change-Id: I1877c0523ba14bbe3a181323aa9ff058797fc4ab
Reviewed-on: https://go-review.googlesource.com/37614
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-02-28 23:41:56 +00:00
Brad Fitzpatrick 548e7d6a69 cmd/coordinator: skip the vet/all test
Change-Id: If2e03e16527753f271f9fa7431622d26d079e3f3
Reviewed-on: https://go-review.googlesource.com/37575
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-02-28 18:56:35 +00:00
Brad Fitzpatrick c36309f89d dashboard, coordinator: add vetall builder
Change-Id: I331a27050e6f068aa47afa9012a9bb50e3b0c46a
Reviewed-on: https://go-review.googlesource.com/37573
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
2017-02-28 18:28:05 +00:00
Brad Fitzpatrick dde7974771 all: enable NetBSD 7.0 builders
Fixes golang/go#8643

Change-Id: Id6a99d0bf4f032c5f5a2e5c282103cc98a515c7b
Reviewed-on: https://go-review.googlesource.com/37469
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-26 22:59:41 +00:00
Brad Fitzpatrick 14f308c1c7 cmd/coordinator: increase snapshot timeout from 1 to 5 minutes
Change-Id: I6230fdc5bbbfdaac9a42bad03350055fc6dbb97b
Reviewed-on: https://go-review.googlesource.com/37468
Reviewed-by: Kevin Burke <kev@inburke.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-26 06:26:51 +00:00
Brad Fitzpatrick f2ea6d4e58 cmd/coordinator: blacklist some builder/repo pairs
These never work and are a waste of resources and unnecessary scary
red on the page.

Change-Id: I2d8f8908096dee01618129a9082e98f3ffd92bb7
Reviewed-on: https://go-review.googlesource.com/37467
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-26 05:44:53 +00:00
Brad Fitzpatrick 15521bc259 cmd/coordinator: clean up reverse buildlet code, export status JSON
Will be used for dynamic creation/destruction of Mac VMs in subsequent CL.

Updates golang/go#9495 (Mac virtualization)
Updates golang/go#15760 (monitoring)

Change-Id: I48b17589b258d5d742bad5a3ddae18de98778149
Reviewed-on: https://go-review.googlesource.com/37457
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-25 18:24:32 +00:00
Brad Fitzpatrick 88f4d73e1a cmd/coordinator: use gitmirror for trybot runs also
(been in production for past few days)

Updates golang/go#19166

Change-Id: Iee301aac5aa87c6644ac1253d7c0bd6c522ff066
Reviewed-on: https://go-review.googlesource.com/37380
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-22 20:05:47 +00:00
Brad Fitzpatrick 64510d09a2 cmd/coordinator: increase max allowed repo source tarball
The talks repo got too big.

Also clean up the gitmirror fetching a code while there. It no longer
runs as a subprocess, so we don't need to account for its start-up
time.

Fixes golang/go#19162

Change-Id: I0f80b95360d079989254c26ea0406dab9633f0c1
Reviewed-on: https://go-review.googlesource.com/37217
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-17 22:01:36 +00:00
Kevin Burke 392d3a9c58 buildlet: add context to GetTar
This lets us set a timeout on the HTTP request, which lets us time out the
writeSnapshot call in cmd/coordinator.

Fixes golang/go#18812.

Change-Id: I370448df4d95130c9c5b30ba32459ce844a6c967
Reviewed-on: https://go-review.googlesource.com/36897
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-12 17:37:23 +00:00
Brad Fitzpatrick b6845bdb45 cmd/coordinator: fix bug where try build status would never go away
If the Gerrit query reported no CLs needed trybot runs, we returned
too early and didn't clear our state. Remove that 'if len(cis) == 0'
early return. The optimization was buggy and not even worth much if
correct.

Also rename some confusing variables.

Change-Id: I485d303c36cc477e3ac651ec25b2c777f512b658
Reviewed-on: https://go-review.googlesource.com/36808
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-11 22:12:15 +00:00
Brad Fitzpatrick f65b532dab cmd/coordinator: use gitmirror on Kubernetes instead of local Docker
Updates golang/go#18817

Change-Id: I1142f079f3748fefcf9fd1d5749e58db86afbda6
Reviewed-on: https://go-review.googlesource.com/36807
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-02-11 21:03:58 +00:00
Brad Fitzpatrick 9a631556e4 cmd/coordinator: reenable trybots for the perf repo
Change-Id: I9f9ed277849f5d8c0ef2554ab105719370476b4f
Reviewed-on: https://go-review.googlesource.com/36017
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-01-31 21:35:23 +00:00
Brad Fitzpatrick 9d1e5158e9 cmd/coordinator: don't build pre-Go 1.7 code on Sierra builders
Updates golang/go#18751

Change-Id: Iadd7dded079376a9bf9717ce8071604cee95d8ef
Reviewed-on: https://go-review.googlesource.com/35643
Reviewed-by: Kevin Burke <kev@inburke.com>
Reviewed-by: Russ Cox <rsc@golang.org>
2017-01-25 17:31:05 +00:00
Kevin Burke 84c3f714d2 gerrit: support contexts
Switch all API methods that make requests to Gerrit to take a
context.Context as their first argument. Adds a package example and
a simple test that we make requests to the correct endpoint and that
the Client can handle correct responses and error responses from the
Gerrit server.

Switches all code in the x/build tree to use the new Gerrit
client. There are several projects outside the tree that import
x/build/gerrit; I'll submit CL's against those to pull in the new
interface once this gets merged.

Documents that the API is unstable.

Fixes golang/go#18742.
Fixes golang/go#18743.

Change-Id: Ifa78cbb058981e23cf5769955f6312fcbe08e174
Reviewed-on: https://go-review.googlesource.com/35559
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-01-23 21:06:28 +00:00
shawnps d9a0206b04 cmd/coordinator: remove unused variables
Change-Id: I39f265cbbcaaa21162e28921e7b279456e143a55
Reviewed-on: https://go-review.googlesource.com/34970
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-01-09 20:02:52 +00:00
Brad Fitzpatrick d621541eb1 dashboard: switch to OpenBSD 6.0 completely, remove OpenBSD 5.8
Updates golang/go#16951

Change-Id: I7b92363671e0ba4c6ab80cef60e7c8600687f440
Reviewed-on: https://go-review.googlesource.com/34384
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-12-14 22:50:41 +00:00
Brad Fitzpatrick 2fce518f8e cmd/coordinator: log per-span info to datastore also
Updates golang/go#12669

Change-Id: Ic7dcc9876557abdb13cd2e6024eb98cdff97c9bb
Reviewed-on: https://go-review.googlesource.com/30631
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-10-07 00:56:04 +00:00
Brad Fitzpatrick 46ecb43b4e cmd/coordinator: cross-compile ARM build on Kubernetes
Saves 4.5 minutes or so by using fast x86 machines to build the ARM
build instead of running make.bash on Scaleway ARM machines.

We still run the tests on ARM, and have a separate builder only
running make.bash on ARM (see prior golang.org/cl/29670)

Fixes golang/go#17105
Updates golang/go#17104

Change-Id: I1cb7b0e5b1cc8b644195f262328884ed3aff120a
Reviewed-on: https://go-review.googlesource.com/29677
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-09-30 00:00:42 +00:00
Brad Fitzpatrick e4d08a5aad cmd/gomote, buildenv, buildlet: move config code to common places
Split off from Quentin's https://golang.org/cl/29399

Change-Id: I4578f8f485e97d6b9844fb12e84779167755752e
Reviewed-on: https://go-review.googlesource.com/29858
Reviewed-by: Quentin Smith <quentin@golang.org>
2016-09-27 18:47:08 +00:00
Quentin Smith d037c181fe buildenv, cmd/coordinator: make DashBase a property of the Environment
Change-Id: I6621cfaf12541f9910255048edd49301a1b2deba
Reviewed-on: https://go-review.googlesource.com/29398
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-09-26 16:47:25 +00:00
Brad Fitzpatrick e37005bca7 dashboard: add a make.bash-only builder on real ARM hardware
This is a new builder in prep for the change to the "linux-arm"
builder where the GOARCH=arm make.bash will be cross-compiled from a
Kubernetes container on fast hardware.

Updates golang/go#17105 (cross-compile ARM builders' make.bash)
Updates golang/go#17104 (5 minute trybots)

Change-Id: Icfd2644d77639f731151abe54839322960418254
Reviewed-on: https://go-review.googlesource.com/29670
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-23 00:09:05 +00:00
Brad Fitzpatrick 328c9b8918 all: split builder config into builder & host configs
Our builders are named of the form "GOOS-GOARCH" or
"GOOS-GOARCH-suffix".

Over time we've grown many builders. This CL doesn't change
that. Builders continue to be named and operate as before.

Previously the build configuration file (dashboard/builders.go) made
each builder type ("linux-amd64-race", etc) define how to create a
host running a buildlet of that type, even though many builders had
identical host configs. For example, these builders all share the same
host type (a Kubernetes container):

   linux-amd64
   linux-amd64-race
   linux-386
   linux-386-387

And these are the same host type (a GCE VM):

   windows-amd64-gce
   windows-amd64-race
   windows-386-gce

This CL creates a new concept of a "hostType" which defines how
the buildlet is created (Kube, GCE, Reverse, and how), and then each
builder itself references a host type.

Users never see the hostType. (except perhaps in gomote list output)
But they at least never need to care about them.

Reverse buildlets now can only be one hostType at a time, which
simplifies things. We were no longer using multiple roles per machine
once moving to VMs for OS X.

gomote continues to operate as it did previously but its underlying
protocol changed and clients will need to be updated. As a new
feature, gomote now has a new flag to let you reuse a buildlet host
connection for different builder rules if they share the same
underlying host type. But users can ignore that.

This CL is a long-standing TODO (previously attempted and aborted) and
will make many things easier and faster, including the linux-arm
cross-compilation effort, and keeping pre-warmed buildlets of VM types
ready to go.

Updates golang/go#17104

Change-Id: Iad8387f48680424a8441e878a2f4762bf79ea4d2
Reviewed-on: https://go-review.googlesource.com/29551
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-22 23:13:34 +00:00
Brad Fitzpatrick 6d82497599 cmd/coordinator: support skipping redundant tests on try runs
Also, don't start obtaining test sharding buildlets early if they're
reverse buildlets. Reverse buildlets are either immediately available,
or they're not. No point monopolizing them earlier than needed.

Updates golang/go#17104

Change-Id: If5a0bbd0c59b55750adfeeaa8d0f81cdbcc8ad48
Reviewed-on: https://go-review.googlesource.com/29473
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-09-21 18:37:49 +00:00
Brad Fitzpatrick 9c8f13dfbe cmd/coordinator: don't check for 'go tool dist'
It's been there for the past two releases. We can assume it's present.

Change-Id: I94ac107d4c52ea823d42a63ced571ff4c81532a2
Reviewed-on: https://go-review.googlesource.com/29471
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-09-21 16:52:52 +00:00
Brad Fitzpatrick 122739b1e9 cmd/coordinator: update the timing hints table a bit
If the coordinator has a better guess as to how long various tests
take, then it can do better critical path scheduling and reduce the
overall time the sharded tests take to complete.

This table still needs to die and be based on recent empirical data,
but at least it's more accurate now, after a long delay in being
updated.

Update is from https://github.com/golang/go/issues/17104#issuecomment-247123458

Updates golang/go#17104

Change-Id: I115aad23fbdb0cde1b196e71a4131fbe36480cc0
Reviewed-on: https://go-review.googlesource.com/29167
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-09-14 21:47:16 +00:00
Brad Fitzpatrick 94d01414bb cmd/coordinator, dashboard: remove some trybots, shard others wider
I'm aiming to have trybot runs finish in under 5 minutes.

This CL removes openbsd-386-gce58 and freebsd-386-gce101 from the trybot set.

openbsd-386-gce58 is the slowest builder. It has an average speed of
722 seconds (and 95 percentile of 923 seconds) over the past week, and
that's sharded over 4 machines. Too slow. It's not worth the resources
to keep it as a trybot. It hasn't caught any interesting bugs. This
builder will still run, but not as a pre-submit trybot.

freebsd-386-gce101 is not slow, but we're removing it to shift its
resources to shard other builders wider.

The coordinator now supports varying the build sharding width based on
whether a build is for a trybot or not. This CL defines separate
numbers for each, sharding builds wider as needed for some trybots.

freebsd-amd64-gce101 goes from 4 to 5 machines in try runs, and down
to 3 when not in try runs.

linux-amd64-race gets one more machine during try runs, and one fewer
in regular runs.

linux-arm goes from 7 machines always, to 3 or 8, depending on whether
it's a try run.

openbsd-amd64-58 goes from 4 to 3 or 6.

windows-amd64-gce goes from 4 to 2 or 6.

windows-amd64-race goes from 4 to 2 or 6.

darwin-amd64-10_11 goes from 3 to 3 or 4.

I'll see how these do over the next few days and readjust as needed.

Also in this CL: fix the constants for the expected duration of
make.bash, which impact when we schedule the creation of test sharding
helper buildlets. We were creating them too early before, wasting
resources.

Change-Id: I38a9b24841e196f1eb668de058c49af8c1d1c64f
Reviewed-on: https://go-review.googlesource.com/29116
Reviewed-by: Quentin Smith <quentin@golang.org>
2016-09-14 15:53:45 +00:00
Brad Fitzpatrick d83028eda5 cmd/coordinator, dashboard: switch to new VMWare-based OS X builders
Ignore the old darwin-{amd64,386}-10_10 builders. Don't give them an
error, but pretend they don't exist.

Also: switch trybots from OS X 10.10 to OS X 10.11, and re-enable
sharding. Let's hope for the best. See golang/go#12979.

This also enables subrepo tests for all OS X versions.

darwin-386-* is currently offline, pending some golang/go#17009

Updates golang/go#9495 (OS X virtualization)

Change-Id: I4d53a79087404b5e8051d1aff0c668a92625f442
Reviewed-on: https://go-review.googlesource.com/28583
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-09-07 05:47:55 +00:00
Brad Fitzpatrick 019ca5adc6 cmd/coordinator: don't treat 'dist test list' remote errors as temp errors
If the buildlet interface reports that "dist test list" was a
"remoteErr" (the remote side successfully ran the command and relayed
its exit status to us, and it was a failure), don't treat that as an
"exec error" (that is, a communication or temporary error).

This is what tied up all the builders forever the other night when the
arm and ppc64 builds were broken, unable to run the go binary, since
they were forever retrying and not making progress. They should've
reported an error to the dashboard.

This was the fix deployed last night.

Change-Id: I08ce15d87eac5374eb907d4a7c72278106ecaba9
Reviewed-on: https://go-review.googlesource.com/27655
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-08-24 16:05:50 +00:00
Jonathan Amsterdam 30d377d8a3 build: update cloud client import paths and options
Change to cloud.google.com/go import paths, and new options package.

Change-Id: I2bb33fe0486d39407c445cafa88f8fc8e6504549
Reviewed-on: https://go-review.googlesource.com/25464
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-08-04 18:19:28 +00:00
Brad Fitzpatrick f2d63a86dd cmd/coordinator: more reliable and debuggable mirroring from gerrit to github
* Use ssh instead of https. (git-remote-https seems buggy and slow,
  unable to deal with 40k+ refs efficiently at all)

* Add /debug/watcher/<repo> status pages on the coordinator (proxying
  through to the watcher child process)

* more logging

* do mirroring of refs in batches, prioritizing heads and tags over
  refs/changes/* (although this is admittedly less useful now that we
  use ssh instead of https).

* update go-watcher-world from git 1.7 to git 2.8 (and Debian sid)

Fixes golang/go#16388

Change-Id: If3e2cf67afddd544892886a466938e8f46df8c95
Reviewed-on: https://go-review.googlesource.com/25110
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-07-21 17:11:12 +00:00
Brad Fitzpatrick a190cd2395 cmd/coordinator: ignore non-master branches when setting repo heads
Fixes golang/go#16413

Change-Id: I4876a7ac261bd31918dfebc119997c08ad9af78b
Reviewed-on: https://go-review.googlesource.com/25008
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-07-18 22:00:43 +00:00
Brad Fitzpatrick 72e4404a40 cmd/coordinator: more UI tweaks
Change-Id: I65c5a200d8d28f84159e3f976ede1f17dc9dc872
Reviewed-on: https://go-review.googlesource.com/22827
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-05-06 16:07:38 +00:00
Brad Fitzpatrick 6417ab41e1 cmd/coordinator: skip building some subrepos
Change-Id: Icb2f9c3a63ed28bf8255ba24f65fa6e46b078d78
Reviewed-on: https://go-review.googlesource.com/22832
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-05-05 22:28:43 +00:00
Brad Fitzpatrick 8c097145c4 cmd/coordinator: UI update
* Move buildlet pools to top
* add #id elements to headings so we can link to #fragments
* collapse details of recently-completed builds
* link to build logs of recently-completed builds anyway

Change-Id: I39fc109e673c9bbbfe2e4904dbdbd6b4cbe42b6f
Reviewed-on: https://go-review.googlesource.com/22825
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-05-05 20:34:04 +00:00
Brad Fitzpatrick 8c6116ada0 cmd/coordinator: shard the misc-compile builder over 4 builders
Now that it's on Kubernetes, it's fast and cheap to shard it wider.

Change-Id: I2858f4c417ef26661575a348fbfc47f4c25d81a2
Reviewed-on: https://go-review.googlesource.com/22795
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-05-05 15:54:32 +00:00
Brad Fitzpatrick de72d46c6c build: move Linux and nacl builders to Kubernetes, add ssacheck trybot
And shard the nacl builders.

Fixes golang/go#15242
Fixes golang/go#12546

Change-Id: I3311678dbb64a76026f75f5691cffac0f25d976b
Reviewed-on: https://go-review.googlesource.com/22780
Reviewed-by: Andrew Gerrand <adg@golang.org>
Reviewed-by: Ross Light <light@google.com>
2016-05-04 23:30:26 +00:00
Brad Fitzpatrick cf68cec0bc cmd/coordinator: ignore ssacheck failures for old commits
If a commit doesn't have the new cmd/dist -compile-only flag, just skip
the ssacheck tests.

Change-Id: I41a5ce39968a073cd4be97e31bd26ffc5cf68699
Reviewed-on: https://go-review.googlesource.com/22793
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-05-04 23:29:58 +00:00
Brad Fitzpatrick b7333cfaa7 cmd/coordinator: fix pinging of dashboard to show in-progress builds
The blue in-progress gophers have been missing in build.golang.org
because the magic log span strings changed.

Change-Id: I702883d8a6f6eea31aaaaa25ebe10e929992a677
Reviewed-on: https://go-review.googlesource.com/22747
Reviewed-by: Ross Light <light@google.com>
2016-05-03 23:59:46 +00:00
Brad Fitzpatrick 20befd8baf cmd/coordinator: write the build result datastore record in the right spot
Change-Id: I4019eac9b79b136309c69f63e604e0be444abd71
Reviewed-on: https://go-review.googlesource.com/22713
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-05-03 00:26:38 +00:00
Brad Fitzpatrick a3a0034248 cmd/coordinator: ignore the grpc-review repo
Change-Id: I7bb29e16cf07a147cf4437ce72936fb2eec04cb3
Reviewed-on: https://go-review.googlesource.com/22710
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-05-02 23:54:59 +00:00
Brad Fitzpatrick cce701d6a8 cmd/coordinator: log builds to datastore
Updates golang/go#12669

Change-Id: I62a245492081519ba02776366d633e31d74a3c76
Reviewed-on: https://go-review.googlesource.com/22705
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-05-02 23:35:27 +00:00
Brad Fitzpatrick 176f1071ee cmd/coordinator: remove redundant startTime global variable
We already had processStartTime.

Change-Id: I3b1522d9b365ad06af19518354d2bde9af766f4c
Reviewed-on: https://go-review.googlesource.com/22703
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-05-02 17:32:12 +00:00
Brad Fitzpatrick 51b13f2f04 cmd/coordinator: start of logging
For now, just log the process's start time and alive/heartbeat time.

Updates golang/go#12669

Change-Id: I4dd28f7ba761b5487f86a4cdb0f721b2aeb4fa57
Reviewed-on: https://go-review.googlesource.com/22701
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-05-02 17:28:01 +00:00
Andrew Gerrand f7f4528954 all: refer to build.golang.org by HTTPS URLs only
Most of these are documentation fixes.

Change-Id: If100cc2ef0ee0b8b47a1e96e4c51a2be8caf5842
Reviewed-on: https://go-review.googlesource.com/22366
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-04-22 02:40:25 +00:00
Brad Fitzpatrick e42afb7dbd cmd/coordinator: give each build and try set a globally unique random ID
These IDs will become the cloud datastore keys for keeping history and logs.

Many more CLs will follow: changing farmer URLs, logging to datastore,
fetching old logs from datastore, etc.

Updates golang/go#13076 (make all logs URLs permanent)
Updates golang/go#12669 (collect logs, stats)

Change-Id: I5b9fd21bf23581c59724b0ed32c8459baa9683f7
Reviewed-on: https://go-review.googlesource.com/21968
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-04-13 13:44:08 +00:00
Brad Fitzpatrick 00477ab270 cmd/coordinator: note that cmd/compile/internal/gc tests are slow
Until we can use historical data, keep this roughly-accurate handmade
table up to date. This helps with the coordinator's critical path
scheduling of tests over buildlets. (I noticed this stuck at the end
of a build, rather than the beginning)

Change-Id: I6e64b138b1f5b3163157d93c59ba19c25c959730
Reviewed-on: https://go-review.googlesource.com/21966
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-04-13 05:38:15 +00:00
Brad Fitzpatrick a2d211fdeb cmd/coordinator: remove plan9 as a trybot
Updates golang/go#15251

Change-Id: I723a70cdc6169252d2088dfcceea89ec5f8f9bc4
Reviewed-on: https://go-review.googlesource.com/21859
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2016-04-12 15:40:31 +00:00
Brad Fitzpatrick 30761a084e dashboard: add test buildlet config for Oracle Solaris
Updates golang/go#15072

Change-Id: I4e02556429ac65d521e6d01687232c1412d078fb
Reviewed-on: https://go-review.googlesource.com/21766
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-04-08 19:46:07 +00:00
Brad Fitzpatrick 874eda751f cmd/coordinator: re-enable Kubernetes in staging
Change-Id: I06ac00b8be9717adf0add3f82e3663883825283a
Reviewed-on: https://go-review.googlesource.com/21761
Reviewed-by: Evan Brown <evanbrown@google.com>
2016-04-08 18:55:09 +00:00
Evan Brown 34ff1d9bc8 all: kubernetes builder autoscaling
Improvements to support rapid scheduling of many build jobs:

- Retry logic in Kubernetes client to handle sporadic connection
  closes from their API server under heavy load

- Cluster autoscaler scales on default CPU utilization metric

- Debug mode allows scheduling multiple builds to test scaling

- Account for scheduled vs. provisioned resources in a cluster
  and use that information to estimate when a build's pod
  will be scheduled and in running state

- Use estimated scheduled time to set context timeout

- Track pod lifecycle (requested time, estimated available time,
  actual available time, terminate time, etc)

Change-Id: I14d6c5e01af0970dbb3390a29d1ee5c43049fff8
Reviewed-on: https://go-review.googlesource.com/19524
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-04-07 17:22:57 +00:00
Brad Fitzpatrick 86757ddb63 cmd/coordinator: push new logging down into the buildlet creation
Next step is logging it to datastore/bigquery. Then stats and
visualizing with trace viewer later.

Updates golang/go#12669

Change-Id: I039097791993dbe3d4aceb18d2a08db8299f3c05
Reviewed-on: https://go-review.googlesource.com/21640
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-04-07 05:32:57 +00:00
Brad Fitzpatrick 6a9837cad4 cmd/coordinator: log event spans with associated success, not stop/start text
Now events and phases of the build are represented by a span, with a
stop and start, and each has timing and a success status.

These will visualize nicer (later) and will be able to be logged and
queried in Cloud Datastore + BigQuery.

Also, remove the overloaded and not-to-be-used "rev" parameter from
the GetBuildlet interface. An upcoming change disconnects the
buildlet's lifetime from that of a single build, so the rev isn't even
known at the time of the GetBuildlet call; the buildlet will be handed
out to the most worthy current waiter (and the rev might not have even
existed at the tim the GetBuildlet call started)

Updates golang/go#12669

Change-Id: I02b28fea8bbbc16dc95c1ea0507418be01aa8ca8
Reviewed-on: https://go-review.googlesource.com/21570
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-04-06 20:59:49 +00:00
Brad Fitzpatrick 5b7c3ad15d cmd/coordinator: disable netbsd builds for now
They're not working yet.

Updates golang/go#8643

Change-Id: I3b9b91bcd2071a59a232ea936d7e0495adecba9a
Reviewed-on: https://go-review.googlesource.com/21499
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-04-04 23:26:11 +00:00
Brad Fitzpatrick dddf9bcc5e cmd/coordinator: start up in dev mode without crashing again
Change-Id: I24b48a33e9f32e74f532aa234608e2ebb3aefa31
Reviewed-on: https://go-review.googlesource.com/21011
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-03-22 22:20:47 +00:00
Brad Fitzpatrick 1bebb26a15 cmd/coordinator: remove two flags
One was in buildenv anyway.

The other hasn't been used in ages.

Change-Id: I1d5f652ca3bf713f59d50a11bdba1339653867bb
Reviewed-on: https://go-review.googlesource.com/20978
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-03-22 22:20:43 +00:00
Brad Fitzpatrick c868c8b3ff cmd/coordinator: start of abstracting storage for testability
Change-Id: Ia7c77affe4751703c953753b9433e74b3c3a0cdf
Reviewed-on: https://go-review.googlesource.com/21012
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-03-22 09:45:11 +00:00
Andrew Gerrand 8e28dc9fa6 dashboard: rename Go14URL to goBootstrapURLTmpl and provide accessor
Also update all users, and rename another template field.
Includes changes to coordinator, gomote, and release.

Change-Id: I1c4408eadbcb83d61063a910dfa18cc395952bc2
Reviewed-on: https://go-review.googlesource.com/20976
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-21 22:19:10 +00:00
Evan Brown a731151878 all: consolidate configuration for coordinator and gomote
buildenv.Environment type defines configuration options:

- Coordinator uses the GCE project name to lookup config. A custom
  config name can be provided at runtime to override.

- The conventional prod and stage project names ('symbolic-datum-552'
  and 'go-dashboard-dev') map to prod and staging configuration structs.

- Production and staging status is explicitly defined in configuration.

- GCS bucket names for buildlet, logs, and snapshots are
  configurable.

Change-Id: I7e6d7874eb0bdfe35dbdd5fcf6212ab50d576b88
Reviewed-on: https://go-review.googlesource.com/19502
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-04 22:24:11 +00:00
Andrew Gerrand 662ec3ac54 cmd/coordinator: don't run trybots on build repo
Fixes golang/go#14118

Change-Id: I06a7a0e5bff509f0ba2b355855656119b4999b79
Reviewed-on: https://go-review.googlesource.com/19031
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-01-28 03:16:45 +00:00
Joel Sing fa600bf9ec env: update openbsd-{386,amd64} builder images to OpenBSD 5.8
OpenBSD 5.8 is the current release and OpenBSD 5.6 is no longer supported.

Revise build script:

- Use the auto installer and disklabel templates built into later versions of
  OpenBSD, rather than entirely using expect.

- Rather than duplicating the entire script for openbsd-386, provide an ARCH
  environment variable that switches between openbsd/amd64 and openbsd/i386.
  Have the openbsd-386 script invoke the openbsd-amd64 script with the
  appropriate environment.

- Remove the 'ignore classless-static-routes' option for dhclient, as it is
  no longer needed for OpenBSD 5.7 and later.

- Clean up after ourselves, rather than leaving a bunch of temporary files
  lying around.

Updates issue golang/go#13029.

Change-Id: Ic1b11dd5eded317b7be32b8f1c2485617ac02b78
Reviewed-on: https://go-review.googlesource.com/18358
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-01-24 22:52:53 +00:00
Evan Brown a8546317ca cmd/coordinator: include linux-amd64-kube in staging
Change-Id: Ie27f4db76aa48665c2fce65fffda655382be88a3
Reviewed-on: https://go-review.googlesource.com/18442
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-01-08 20:17:50 +00:00
Andrew Gerrand 2c7c4194c6 cmd/coordinator: cache affirmative snapshotExists results
Change-Id: Ib44f956b934dbbc3653f33106a71d93a7ce4b6bf
Reviewed-on: https://go-review.googlesource.com/18275
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-01-06 22:48:52 +00:00
Andrew Gerrand a48ae26281 cmd/coordinator: maintain a separate list of sub-repo trybots
Fix for previous change.

Change-Id: If0690ae728374f83692b76dac6cbb6c865f57bed
Reviewed-on: https://go-review.googlesource.com/18244
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-01-05 00:58:45 +00:00
Andrew Gerrand a64b843954 cmd/coordinator: don't try sub-repo changes on unsuitable builders
Change-Id: Ia03b0d8ca685f6f38852846db24ddf0acf6d8467
Reviewed-on: https://go-review.googlesource.com/18242
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-01-04 23:09:03 +00:00
Andrew Gerrand b475d637bb cmd/coordinator: implement sub-repo trybots
Fixes golang/go#11179

Change-Id: Iafa95eb24f93e51e29aec6a572a3cd186859a54f
Reviewed-on: https://go-review.googlesource.com/10962
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-01-04 04:07:10 +00:00
Burcu Dogan 4bc568c7c3 cmd/coordinator: distinguish intermediate messages from the final report
Change-Id: I0da80c0b5b5aa9dc225090c87b3d559602f50925
Reviewed-on: https://go-review.googlesource.com/17769
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-12-15 21:08:22 +00:00
Chris Broadfoot 2dce4b701b cmd/coordinator: update syncutil import path.
Change-Id: Id2c240ae2e555817b4d3a4e05fee9b0f6ffd6970
Reviewed-on: https://go-review.googlesource.com/17402
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-12-04 00:50:07 +00:00
Brad Fitzpatrick 6363ab4c04 cmd/coordinator: resize kubernetes instance group down to one after 10min idle
And the associated gceutil change used by this CL was:
https://review.gerrithub.io/#/c/254054/

Change-Id: Id493a2ffaf9e706096e920a19b828fa85d41821a
Reviewed-on: https://go-review.googlesource.com/17315
Reviewed-by: Evan Brown <evanbrown@google.com>
2015-12-03 18:57:54 +00:00
Brad Fitzpatrick 5f62335c08 cmd/coordinator: fix two crashes
Change-Id: I5ad75b5cd92ba4199642fb2650c7891bbecbed70
Reviewed-on: https://go-review.googlesource.com/17131
Reviewed-by: Evan Brown <evanbrown@google.com>
2015-12-03 18:57:28 +00:00
Brad Fitzpatrick 40ff1ef7a6 cmd/coordinator: save CPU by not validating recent .tar.gz snapshots
We were burning a fair bit of CPU here.

Updates golang/go#12671

Change-Id: Iba16e1caa80a1f0b7330098209acaf6d46ce048f
Reviewed-on: https://go-review.googlesource.com/17130
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-12-03 18:01:09 +00:00
Brad Fitzpatrick 350b42fe78 cmd/coordinator: pull out kubeCluster variable, update to new Cloud Storage API
Change-Id: If0ebe24c1359c4a4c4f3fdb0f214994605e2e887
Reviewed-on: https://go-review.googlesource.com/17313
Reviewed-by: Evan Brown <evanbrown@google.com>
2015-12-02 22:49:40 +00:00
Brad Fitzpatrick a0d14be2ad cmd/coordinator: add pprof handlers
Change-Id: Ia2fa60ab7f32766a7e638469a11761deb2ec7843
Reviewed-on: https://go-review.googlesource.com/16956
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-11-20 20:26:54 +00:00
Evan Brown de69de5da6 cmd/coorindator: ignore pod cleanup if Kubernetes is unavailable
* if Kubernetes init fails, don't attempt to clean existing pods
* TODOs for disabling kubePool

Updates golang/go#12546

Change-Id: I392f6cc4af31fdf307e5aa907a243ff7f5a98b00
Reviewed-on: https://go-review.googlesource.com/17104
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-11-20 19:05:55 +00:00
Evan Brown 08b68a97c7 all: run dev coordinator locally, allow debug in prod
* flag allows debug (trigger a build) in prod mode
* use default zone (us-central1-f) in staging
* compute.CloudPlatformScope satisfies compute and storage scope
  requirements
* new buildlet for linux-amd64 on Kubernetes

Updates golang/go#12546

Change-Id: I1a0cbc0e0c0552b7ac56943c646378194508d48f
Reviewed-on: https://go-review.googlesource.com/17102
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-11-20 18:13:27 +00:00
Austin Clements b8e783ac6b cmd/coordinator: use unambiguous change triple
There are several places where the coordinator passes a CL's Change-ID
back to the Gerrit API. However, these APIs will fail if there are
multiple changes with the same Change-ID (for example, if there's a
cherry-pick). One consequence of this is that the coordinator can't
post comments on changes with ambiguous Change-IDs, which means it
can't post trybot status or update the TryBot-Result label.

Because of this ambiguity, the Gerrit APIs also accept a more complete
and unique triple of (project, branch, Change-ID). This commit adds a
ChangeTriple method to tryKey that returns this triple and modifies
all API calls to use this, as well as a few places on the status
pages.

Fixes golang/go#13331.

Change-Id: Ia13f66a5cb27a14dfc4c95b7e460110d2dbefe62
Reviewed-on: https://go-review.googlesource.com/17071
Reviewed-by: Andrew Gerrand <adg@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-11-20 17:42:26 +00:00
David du Colombier 098fc4ca22 cmd/coordinator: enable Plan 9 builder
GCE rolled back the change that broke Plan 9.

Fixes golang/go#13077

Change-Id: Ifb04ce74fd593a2ab773ff56f8850a6f252ace48
Reviewed-on: https://go-review.googlesource.com/16947
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-11-18 18:04:21 +00:00
Evan Brown 83f9748046 all: display pool status and delete failed/old pods
* status page shows kube pool details
* pods created by the coorindator are tracked
* pods that fail to create are deleted
* pods older than delete-at are deleted
* pods created by a different coordinator are deleted

Updates golang/go#12546

Change-Id: I4c4f8ff906962b4a014a66d0a9d490ff17710d62
Reviewed-on: https://go-review.googlesource.com/16101
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-11-05 11:33:24 +00:00
David Crawshaw a1a07fb139 cmd/coordinator: fix build log link for -mode=dev
Change-Id: If62e66b3ce323f368e18616c31a8aef8cf4ae2d8
Reviewed-on: https://go-review.googlesource.com/16290
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-10-28 14:03:06 +00:00
Brad Fitzpatrick 117ac82c42 cmd/coordinator: update package doc a bit
Change-Id: I36375e97872a06731f2f50ff6e81e21a42947145
Reviewed-on: https://go-review.googlesource.com/16401
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-10-28 04:00:55 +00:00
Brad Fitzpatrick a56d015dcb cmd/coordinator: disable plan9 builder for now
GCE broke it. GCE is being fixed, but not immediately.

Updates golang/go#13077

Change-Id: I289e382b0a4affc4fc8faee5da053474d1cabc35
Reviewed-on: https://go-review.googlesource.com/16314
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-10-28 01:25:40 +00:00
Matthew Dempsky d5f422f474 all: fix vet warnings
Change-Id: Ia4519d9b050136b4d46dc8361f546e3c4205a9cd
Reviewed-on: https://go-review.googlesource.com/16288
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-10-25 04:14:39 +00:00
Evan Brown 956434c23a all: improved monitoring of buildlet pods after creation
* Replaced cancel with context.Context
* StartPod can be canceled
* Wait for buildlet to come online, but fail fast if pod fails first
* Support timeout waiting for pod to leave pending phase
* Use Kubernetes watch API (long poll)

Updates golang/go#12546

Change-Id: I792a3b8fed615362a0290feee7de0c2cefe43c0e
Reviewed-on: https://go-review.googlesource.com/15285
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-10-15 23:45:50 +00:00
Brad Fitzpatrick 8b50a06874 cmd/coordinator: fix negative waitgroup crash
Not sure what I was thinking. Hopefully a copy/paste-o.

Fixes golang/go#12813

Change-Id: Idf63301f8f4098db07c3203575a085f7dab8e6a6
Reviewed-on: https://go-review.googlesource.com/15253
Reviewed-by: Austin Clements <austin@google.com>
2015-10-01 22:18:35 +00:00
Brad Fitzpatrick 3cd172357e cmd/coordinator: misc kubernetes fixes
Change-Id: I26a0d86565150567db3bea73117aa0c46001b88f
Reviewed-on: https://go-review.googlesource.com/15252
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-10-01 22:09:15 +00:00
Evan Brown 4dfb85f32a all: basic support for linux-amd64 buildlets on Kubernetes
* set correct metadata as env vars on each container in pod

* stage0 detects when running in a pod

* add scope to support farmer on GCE communicating with Google
  Container Engine API

* dev mode supports GCE and Kubernetes even when not running
  on GCE

* pod buildlet returns a configured http.Client

* pod buildlets work, but pods are not removed after completion
  (or on creation failure)

Updates golang/go#12546

Change-Id: If91673b49223130c1e7077c130f1abe1e7966d02
Reviewed-on: https://go-review.googlesource.com/15041
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-10-01 17:25:38 +00:00
Evan Brown 882e20c4c9 cmd/coordinator: discover kube cluster
Find the default Kubernetes cluster and configure a client to talk to it.
Use application default credentials.

Updates golang/go#12546

Change-Id: Ifb1ce57f52f4fbbee3267f8cc3cf02a78146bd5b
Reviewed-on: https://go-review.googlesource.com/14532
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-21 18:28:38 +00:00
Brad Fitzpatrick 1cc6bfc67b cmd/coordinator: don't reuse main buildlet when broken, make timeouts fatal
This CL makes the main buildlet and any helper buildlets all
equivalent once we get to the final stage of the build (test
execution). Now the death of the main buildlet isn't critical and the
testing continues as long as any buildlet is alive (or any helper
buildlet is on its way).

It also makes timeouts (20 minutes) of remote commands fatal, now that
health checking is reliable for all buildlet types.

Fixes golang/go#12685

Change-Id: I07d1e1fabf1027ee24ce679e4fcc8bd09bed6d83
Reviewed-on: https://go-review.googlesource.com/14774
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-20 15:29:36 +00:00
Brad Fitzpatrick ce74e0b6e0 cmd/coordinator: don't write truncated snapshots to GCS
Updates golang/go#12671

Change-Id: Ife3354f4a013cbfd9a5e960077adde8406da67ca
Reviewed-on: https://go-review.googlesource.com/14739
Reviewed-by: Glenn Lewis <gmlewis@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-18 21:46:42 +00:00
Brad Fitzpatrick ab3e6dfd6e cmd/coordinator: verify snapshot before using it
We were creating corrupt snapshots before (golang/go#12671), so
double-check them before use, for now. We can relax this in the future
(see TODO).

Fixes golang/go#12671

Change-Id: I10b7929d4b78c717f29c67a0ce495ecd435a1d26
Reviewed-on: https://go-review.googlesource.com/14772
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-18 21:37:22 +00:00
Brad Fitzpatrick db9e0738f2 cmd/coordinator: remove the blacklist of the shootout target
The previous blacklisting was because of golang/go#12668, since fixed.

Further, the tests are now sharded (golang/go#12623) and this test
name doesn't even exist, so this change is a no-op.

Change-Id: Id141923e904a5aec91e53ba6f1d44e6cdf137cd2
Reviewed-on: https://go-review.googlesource.com/14773
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-18 21:35:09 +00:00
Brad Fitzpatrick 8a7ceb75fa cmd/coordinator: remove buildlet from list when closed, notice buildlets faster
Also show build steps with -x in Makefile. It's slow to use go build,
but go install doesn't quite work. Need to figure that out.

Change-Id: I79093dc7c84912b3f04c9e4708c9f65086c4445c
Reviewed-on: https://go-review.googlesource.com/14733
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-09-18 01:35:28 +00:00
Andrew Gerrand 5299bb075d cmd/coordinator: disable linux-arm trybots, re-enable mirroring
Change-Id: I4a9036c05cb36587bc35281542efa151f09d8d6a
Reviewed-on: https://go-review.googlesource.com/14637
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-09-17 00:21:21 +00:00
Brad Fitzpatrick 647e49b4b5 cmd/coordinator: always set GOROOT, fixes snapshot-reuse problem
Fixes golang/go#12633

Change-Id: I8bfbc6eac9509eb71ae14d7b153a0494709cdcde
Reviewed-on: https://go-review.googlesource.com/14588
Reviewed-by: Andrew Gerrand <adg@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-16 04:04:14 +00:00
Andrew Gerrand 8cdbfaa439 cmd/coordinator: fix log streaming
Break out 'live log' buffer into separate package.

Change-Id: Ie2358a73ac05a97d5c2632b5737295ee24ef1805
Reviewed-on: https://go-review.googlesource.com/14577
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-16 03:40:49 +00:00
Brad Fitzpatrick 8bad2a8c99 buildletclient: simplify Close
Now Close always means destroy.

The old code & API was a half-baked implementation of a (lack of)
design where there was a difference between being done with a buildlet
(with it possibly being reused by somebody else?) and you wanting to
nuke it completely. Unfortunately this just grew messier and more
broken over time.

This attempts to clean it all up.

We can add the sharing ideas back later when there's actually a design
and implementation. (We're not losing anything with this CL, because
nothing ever shared buildlets)

In fact, this CL fixes a problem where reverse buildlets weren't
getting their underlying net.Conns closed when their healthchecks
failed, leading to 4+ hour (and counting) build hangs due to buildlets
getting killed at inopportune moments (e.g. me testing running a
reverse buildlet on my home mac to help out with the dashboard
backlog)

Change-Id: I07be09f4d5f0f09d35e51e41c48b1296b71bb9b5
Reviewed-on: https://go-review.googlesource.com/14585
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-09-15 22:42:57 +00:00
Brad Fitzpatrick 61ebbcda68 all: heartbeat buildlets always, now that reverse buildlet protocol allows it
Also, don't run shootout on linux-arm (golang/go#12623)

Change-Id: I2c85b8a04917cb0992086012eaa59b00a6cb31a4
Reviewed-on: https://go-review.googlesource.com/14582
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-15 18:38:18 +00:00
Brad Fitzpatrick 1f0d8f287c all: tons of builder work
* reverse buildlet rework (multiplexed TCP connections, instead
  of a hacky reverse roundtripper)

* scaleway ARM image improvements

* parallel gzip implementation, which makes things ~8x faster on
  Scaleway.

* merge watcher into the coordinator, for easier deployments

Change-Id: I55d769f982e6583b261435309faa1f718a15fde1
Reviewed-on: https://go-review.googlesource.com/12665
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-15 08:28:33 +00:00
Brad Fitzpatrick 6925ce80a1 cmd/coordinator: start of a Kubernetes buildlet pool
Updates golang/go#12546

Change-Id: Ia70baeb1df441509f70c77e7b94e7eb9fddccbf3
Reviewed-on: https://go-review.googlesource.com/14392
Reviewed-by: Evan Brown <evanbrown@google.com>
2015-09-08 22:31:58 +00:00
Andrew Gerrand 45c13f223e cmd/coordinator: a few fixes
- record 'go list' failures in sub-repos as test failures.
- don't try to run sharded tests on old go 1.4 trees.
- improved logging.

Change-Id: Ia0ca72caf5fc02cddfefdd1c87d68108901a16be
Reviewed-on: https://go-review.googlesource.com/14284
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-09-07 04:05:43 +00:00
David Crawshaw 34ded3f93a cmd/coordinator: fix build and dev mode niceties
Change-Id: I0ce9e46310405e1ad104d7222159027445fe8619
Reviewed-on: https://go-review.googlesource.com/14271
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-03 20:24:40 +00:00
Andrew Gerrand 871e9e97cb cmd/coordinator: set GO15VENDOREXPERIMENT=1 when running sub-repo tests
The coordinator doesn't know how to fetch dependencies outside
golang.org/x/... so we should allow it to use Go 1.5's new vendoring
support.

Change-Id: I5e9a8a7e574a1dc728b2b0a8a35616001ff6bc46
Reviewed-on: https://go-review.googlesource.com/12783
Reviewed-by: Nigel Tao <nigeltao@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-07-29 03:21:07 +00:00
Andrew Gerrand a4d1a8a64a dashboard: remove obsolete SplitMakeRun exception
We solved the mentioned issue when we got cmd/release working.

Fixes golang/go#11812.

Change-Id: I163f6757c5e930629fb8b840701e9e3ce7edf3cf
Reviewed-on: https://go-review.googlesource.com/12754
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-07-28 07:40:43 +00:00
Andrew Gerrand f8b4a13722 cmd/coordinator, cmd/buildlet: use dev cert in development mode
Change-Id: I34cfbb159eef300ef97060d6f4aabc5996bbe27d
Reviewed-on: https://go-review.googlesource.com/12210
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-07-15 01:25:44 +00:00
Brad Fitzpatrick 7b6d1b1b28 all: remote buildlets
This creates a mechanism for clients (such as cmd/release and
cmd/gomote) to obtain buildlets via the coordinator. Previously
cmd/release and cmd/gomote could only create GCE VMs themselves, and
required the GCE project's credentials. In addition to the awkwardness
of needing to hand out the GCE credentials, it also meant ARM and
Darwin buildlets (which use the reverse buildlet pool) weren't usable.

Instead, this creates a new auth mechanism where the coordinator is
contacted over TLS with key pinning (the CA system isn't used) in the
same way that the reverse builders already dialed into the
coordinator, and then a "user build type" and hash are sent as the
username and password. The same master key is used to sign user
builder keys, and they always start with "user-". (which isn't a GOOS).

Then the coordinator provides an API to create and list buildlets.
They auto-expire after a duration and are auto-renewed upon use.

The buildlet library (as used by cmd/release etc) then proxies HTTP
requests via the coordinator to the backend buildlet.

See doc/remote-buildlet.txt for protocol details.

Change-Id: I12e27eae788fdd91927cb182b950893dc759f8e9
Reviewed-on: https://go-review.googlesource.com/11901
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-07-07 16:45:21 +00:00
Brad Fitzpatrick a5383ffaa1 cmd/coordinator: shard linux race builder
Fixes golang/go#11074

Change-Id: I9401122e4d7febd3e38a80be89fcb2e03969f383
Reviewed-on: https://go-review.googlesource.com/11168
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-07-03 20:18:58 +00:00
Andrew Gerrand b00072526e cmd/coordinator: fix bootstrapping of subrepo builds against releases
Change-Id: I2900ca663a05d37db606bb49042aab4c0cae03c0
Reviewed-on: https://go-review.googlesource.com/11114
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-06-15 21:56:13 +00:00
Brad Fitzpatrick d4ea014ceb cmd/coordinator, buildlet: reliability fixes
Add background heartbeats to detect dead GCE VMs (the OpenBSD
buildlets seem to hang a lot),

Add timeouts to test executions.

Take helper buildlets out of service once they're marked bad.

Keep the in-order buildlet running forever when sharding tests, in
case all the helpers die. (observed once)

Keep a cache of recently deleted VMs and don't try to delete VMs again
if we've recently deleted them. (they're slow to delete)

More reverse buildlets more paranoid in their health checking and closing
of the connection.

Make status page link to /try set URLs.

Also, better logging (more sometimes, less others0, and misc bug fixes.

Change-Id: I57a5e8e39381234006cac4dd799b655d64be71bb
Reviewed-on: https://go-review.googlesource.com/10981
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-06-13 01:50:33 +00:00
David du Colombier 5e8cfd4b8c cmd/coordinator: fix typo s/started/ended/
Change-Id: I88f4a19db4cd311382247eb1d43996ac473898be
Reviewed-on: https://go-review.googlesource.com/10951
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-06-12 15:17:28 +00:00
Andrew Gerrand 306c6b7e48 cmd/coordinator: put the sub-repo name and revision in the log heading
Change-Id: I6b6ac6edbdfa46e91e507b2225e7aa33e97c0ffe
Reviewed-on: https://go-review.googlesource.com/10961
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-06-11 20:46:01 +00:00
Brad Fitzpatrick e8a3d43f54 cmd/coordinator: delay dashboard pinging until build starts
There were too many blue gophers too early on build.golang.org.
Wait until we have quota first (GCE quota or reverse buildlet pool
aquired).

Updates golang/go#10716

Change-Id: I076e89f319d68d55a61f3f8faf0242342c5ae825
Reviewed-on: https://go-review.googlesource.com/10921
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-06-11 17:43:07 +00:00
Brad Fitzpatrick 522e105de2 cmd/coordinator: fix a case where wrong error type was returned
Change-Id: Idbca639b6843902fc6d97559f72c193954fb0ea4
Reviewed-on: https://go-review.googlesource.com/10920
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-06-11 17:42:54 +00:00
Brad Fitzpatrick 378fb2949f cmd/coordinator, buildlet: kill TCP conn of misbehaving reversePool buildlets
Also: heartbeat reverse buildlets more often
Also: adjust cmd/go test expected duration.

Change-Id: I75fbb66a0b20ac7357ad7cf78fc545101ac9aa33
Reviewed-on: https://go-review.googlesource.com/10884
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-06-11 00:06:14 +00:00
Andrew Gerrand 234725beb8 cmd/coordinator: build sub-repositories
Fixes golang/go#9506

Change-Id: Iebfb52386b5ba3df7d058f266e227d634d210ec6
Reviewed-on: https://go-review.googlesource.com/10732
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-06-10 16:27:33 +00:00
Brad Fitzpatrick 777a5bf830 cmd/coordinator: link to permalink failure URLs while trybot is still running
Per request of iant and rsc.

Change-Id: Ifae7b6c1a83240382635a87ccc2c8d8aa429b901
Reviewed-on: https://go-review.googlesource.com/10848
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-06-09 19:44:41 +00:00