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

32 Коммитов

Автор SHA1 Сообщение Дата
Dmitri Shuralyov c9fe2ccde2 internal/task: post tweets via Twitter API
Use the Twitter API to post tweets with the generated text and image.
Credentials are fetched from secret manager, and OAuth 1.0a is used
for authentication during Twitter API calls¹.

Tested with the real Twitter API (to be sure it would work).

¹ https://developer.twitter.com/en/docs/authentication/oauth-1-0a

For golang/go#40279.
Fixes golang/go#47403.

Change-Id: I69d0798a69c8e5a0ae8b150dd9d7673c86bdf849
Reviewed-on: https://go-review.googlesource.com/c/build/+/358898
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Trust: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-11-02 15:03:57 +00:00
Dmitri Shuralyov 46f6bfb6da internal/task: add task to tweet about Go releases
This CL adds an internal API for making release tweets of various kinds,
including the templates used to generate the tweet text and tweet image.

It does not have code for using the Twitter API. CL 358898 will do that.

For golang/go#40279.
For golang/go#47403.

Change-Id: Ic0cb2f5f1e59c0fd932aed7c5c4a88decc5a3d8d
Reviewed-on: https://go-review.googlesource.com/c/build/+/358897
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Trust: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-11-02 15:00:47 +00:00
Carlos Amedee 7d082ba963 internal/gomote/protos: add a skeleton for a gomote api
This change adds a skeleton for a new GRPC gomote API. This work
is part of a reworking of the security model around gomotes.

Updates golang/go#47521
Updates golang/go#48742

Change-Id: I4b0ae84bf58fe6e999fb34c17e670a6f638055f0
Reviewed-on: https://go-review.googlesource.com/c/build/+/356589
Trust: Carlos Amedee <carlos@golang.org>
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2021-10-21 20:06:34 +00:00
Alexander Rakoczy cbb5112b70 cmd/relui,internal/relui: create and run workflows
Create and run workflows, storing state in a postgres database. Generate
database queries using sqlc, which allows the author to have complete
control over the query structure.

The basic structure of creating and running a workflow works, but
there is still much work to do in terms of selecting which workflow to
create, recording logs, maintaining a list of currently running
workflows, and recording workflow-level results.

Task persistence needs to be updated, as the current implementation
cannot be resumed due to losing the type during marshalling.

For golang/go#47401

Change-Id: I9ccddf117d023f70568de655c482820a1152d9cb
Reviewed-on: https://go-review.googlesource.com/c/build/+/350449
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2021-09-28 15:24:53 +00:00
Alexander Rakoczy d0268397ad cmd/relui,internal/relui: add database migrations
This change adds golang-migrate to manage database migrations for relui.
relui will run all database migrations on start, and return an error for
any failures.

The current developer tooling is managed through the Makefile. For ease
of use, common tasks will be moved to a script in a future CL.

For golang/go#47401

Change-Id: I678c3b21d7e89d7d5a66305f66075f02cc2f3284
Reviewed-on: https://go-review.googlesource.com/c/build/+/349951
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2021-09-17 16:15:38 +00:00
Alexander Rakoczy 15e3ac06db cmd/coordinator: fix gomote ssh connection closing
gomote ssh connections immediately close with a "Connection closed"
error. The coordinator logs indicate an error in our call to pty.Start,
which is used to relay the tty between ssh connections. When the
coordinator was updated to Go 1.16 from Go 1.13 in July, it likely
caused this issue (see creack/pty#96).

Fixes golang/go#48329

Change-Id: Ieec5d2220c6c5ef4c53de594acbdd598a1bafb6d
Reviewed-on: https://go-review.googlesource.com/c/build/+/349092
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2021-09-10 20:46:07 +00:00
Alexander Rakoczy 3cef35c739 cmd/relui: add Docker and Postgres configuration
This adds a Dockerfile for relui, as well as a file for running
integration tests against the database. It also adds a configuration for
a development database, as well as a test environment.

For golang/go#47401

Change-Id: I668c99d028265c865baa7e15dfe627423815af94
Reviewed-on: https://go-review.googlesource.com/c/build/+/347289
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2021-09-02 21:31:25 +00:00
Alexander Rakoczy 68653193ff cmd/relui, cmd/relworker: remove pubsub and datastore
This will make room for a new workflow definition, and a new datastore.

For golang/go#47401

Change-Id: I4bdc8a9a0ed2c5a3743284d0f267b838dddec8aa
Reviewed-on: https://go-review.googlesource.com/c/build/+/340430
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-08-11 19:35:10 +00:00
Alexander Rakoczy d58f8319b8 all: update ssh dependencies
This is the result of running go get -d github.com/gliderlabs/ssh.

Change-Id: I1b087e3823f9e03575ecb13130c9314fdced7b95
Reviewed-on: https://go-review.googlesource.com/c/build/+/337790
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-07-27 20:54:22 +00:00
Alexander Rakoczy 2e0ad6b5c1 all: update golang.org/x dependencies
This change is the result of running go get -d for each of our
golang.org/x dependencies in our go.mod file.

Change-Id: If1e188052c7b3edcaa332c22f01a213914221c52
Reviewed-on: https://go-review.googlesource.com/c/build/+/337789
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-07-27 20:54:18 +00:00
Dmitri Shuralyov ec857d63f3 cmd/coordinator: update to Go 1.16
Also set the language to 1.16 in the x/build go.mod file.

This is needed to be able to use the //go:embed directive in
coordinator, which will make moving static files much easier.

For golang/go#34744.

Change-Id: I0e627b408fe887ce1d3e0d6b3e032166421a8c41
Reviewed-on: https://go-review.googlesource.com/c/build/+/336390
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-07-27 17:34:34 +00:00
Dmitri Shuralyov bbf6dcb0b3 cmd/coordinator: migrate to OpenCensus for metrics
Replace low-level Stackdriver monitoring API usage for OpenCensus
with a Stackdriver exporter. To benefit local development, expose
metrics at an /metrics endpoint (to be picked up with Prometheus).

This makes it much easier to add new metrics, to test them locally,
and brings our metrics solution in sync with what's currently in
use in x/playground (see CL 302769). It's expected to be preferable
to migrate to OpenTelemetry in the future when a good migration path
becomes available, and both x/build and x/playground can be updated
at that time.

This CL is based on work in CL 229679 and CL 138522.

For golang/go#26779.
For golang/go#44406.
For golang/go#17104.

Co-authored-by: Alexander Rakoczy <alex@golang.org>
Co-authored-by: Emmanuel T Odeke <emmanuel@orijtech.com>
Change-Id: Iad45730feace471db1668e828b7c9775377be8a9
Reviewed-on: https://go-review.googlesource.com/c/build/+/303669
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
2021-03-23 16:59:25 +00:00
Alexander Rakoczy 49e08c2303 cmd/relui: add datastore support
This change replaces the file storage layer with Google Cloud Datastore.
It adds a fake implementation of the datastore client, supporting only
the features we use so far.

Slightly simplifies Workflow configuration.

Updates golang/go#40279

Change-Id: I55228f6540fbcdf5f803203ff7309232cebf6a20
Reviewed-on: https://go-review.googlesource.com/c/build/+/275237
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2021-02-11 02:22:59 +00:00
Alexander Rakoczy a815a97c15 cmd/relui: generate uuid for workflow and task instances
Sets workflow and tasks IDs when a workflow is created in the UI. These
IDs will be used in the future when operating on workflows and tasks via
the UI or API.

This ID will likely change to a datastore ID after datastore integration
is added.

For golang/go#40279

Co-authored-by: Carlos Amedee <carlos@golang.org>
Change-Id: Ib75c00c234d156cc1bbdab8c658281f04914165b
Reviewed-on: https://go-review.googlesource.com/c/build/+/257238
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2020-09-25 20:12:48 +00:00
Alexander Rakoczy fac8f1ee5b cmd/relui: create pubsub topic on start
This will create and connect to a pubsub topic for communicating with
relui workers on application start. If the topic already exists, it will
just get a reference to the topic.

For golang/go#40279

Co-authored-by: Carlos Amedee <carlos@golang.org>
Change-Id: Ic173212cd15562b9d1a1cc601d307d5ee1a4e811
Reviewed-on: https://go-review.googlesource.com/c/build/+/257237
Trust: Alexander Rakoczy <alex@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2020-09-25 20:12:21 +00:00
Carlos Amedee 372ecfe489 buildlet: add an AWS buildlet client
This change adds an AWS buildlet client which allows us to
create EC2 instances on AWS. With this change we have also
moved a portion of the gce creation logic into a helper
function which allows multiple clients to use it. Metadata
for the instances are stored in the user data fields.

The creation of a buildlet pool and modifications to
rundocker buildlet be made in order to enable this change.

Updates golang/go#36841

Change-Id: Ice03e1520513d51a02b9d66542e00012453bf0d9
Reviewed-on: https://go-review.googlesource.com/c/build/+/232077
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
2020-05-06 14:00:06 +00:00
Carlos Amedee 11d815cf81 internal/secret: upgrade secret manager client to v1
This change updates the secret manager client version from beta to v1.

Updates golang/go#37171

Change-Id: Id7648c299ceb542afdb93e970df7b4ed1d13f98b
Reviewed-on: https://go-review.googlesource.com/c/build/+/222665
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2020-03-09 22:00:55 +00:00
Alexander Rakoczy b077d0cce9 cmd/coordinator,cmd/retrybuilds: add wipe API to coordinator
As part of our migration to combine codebases of the Build Dashboard and
the Coordinator, the first step is to start calling a Coordinator API
for wiping release status of failed builds. This adds a gRPC API to the
coordinator, listening on the same port as the HTTPS listeners.

The Coordinator API in this implementation simply validates and forwards
a request to the dashboard API.

This change also updates cmd/retrybuilds to optionally use the
Coordinator gRPC API for wiping.

Tested locally using the live Dashboard API.

Updates golang/go#34744

Change-Id: I4b34b064625193eb11a280565d701605064a8443
Reviewed-on: https://go-review.googlesource.com/c/build/+/219120
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2020-02-20 15:37:57 +00:00
Carlos Amedee de8b20fb66 internal/secret: add secret management package
This change adds a package which can be used to retrieve secrets from
GCP Secret Management Service. The goal of this package is to ensure
that there is a simple and known way to retrieve secrets for any
service housed in the build repository. This package should enable the
storage of the project secrets in a single, secure location.

A simple use of the package is introduced to the scaleway application.

Updates golang/go#37171

Change-Id: I957afc2a8b8cede2c2eaa132513fad3fb3691867
Reviewed-on: https://go-review.googlesource.com/c/build/+/217340
Run-TryBot: Carlos Amedee <carlos@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
2020-02-13 17:21:54 +00:00
Alexander Rakoczy 6c6082de2d Revert "cmd/buildlet: add riscv64 buildlet"
This reverts CL 216765 (git 992a31230c)

Reason for revert: This trybot is broken.

Updates golang/go#37022

Change-Id: I8ff1e53e3edba7c461d1f46701df02b844b1f3a1
Reviewed-on: https://go-review.googlesource.com/c/build/+/217723
Run-TryBot: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2020-02-04 20:09:34 +00:00
Brad Fitzpatrick 992a31230c cmd/buildlet: add riscv64 buildlet
Somebody else will need to run "make buildlet.linux-riscv64" for me to upload
the binary to GCS.

Updates golang/go#27532
Fixes golang/go#36871

Change-Id: I0ae8dea0f33c79801670d1f9a02a29b31d739e31
Reviewed-on: https://go-review.googlesource.com/c/build/+/216765
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2020-01-29 19:35:47 +00:00
Brad Fitzpatrick 9ff529881d app/appengine: gzip responses
Drops response size from 1.2 MiB to 37 KiB.

Fixes golang/go#36094

Change-Id: I4cf8eda0582da49cf97f7b0f9be93113f5090fbb
Reviewed-on: https://go-review.googlesource.com/c/build/+/211077
Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-12-13 17:01:29 +00:00
Brad Fitzpatrick b1a7aa2ef6 env/linux-ppc64/osuosl: upgrade linux/ppc64 hardware & OS, use Docker
Collaboration with @tiborvass at Docker who got Docker running on
big-endian PPC64. Go for ppc64 doesn't support cgo or external
linking, so runc doesn't work, but a new OCI-compliant runc
implementation written in C (https://github.com/containers/crun) means
we can run Docker after all. See NOTES & build-*.sh

Then add a Dockerfile & associated cleanup in buildlet & stage0 to use
rundockerbuildlet.

Once done, might help with golang/go#35188, golang/go#32613, etc.

Fixes golang/go#34830
Updates golang/go#21260

Change-Id: I43d7afa1d58bbdfa16e3c57670bc41f1d1932d80
Reviewed-on: https://go-review.googlesource.com/c/build/+/203886
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-11-04 23:54:01 +00:00
Brad Fitzpatrick 72d4803bf3 go.mod: update past go-cmp's checkptr fix
To fix our race build.

Updates google/go-cmp#167

Change-Id: I8d57cb4b7e0244f7d0944717b2e472afdfec218d
Reviewed-on: https://go-review.googlesource.com/c/build/+/203880
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
2019-10-28 18:03:08 +00:00
Brad Fitzpatrick 58782e7c8a go.mod: update cloud.google.com/go dep, run go mod tidy
And delete our old, incomplete vendor directory. We already rely on
modules, so we can rely on modules for that one package too.

Fixes golang/go#31815

Change-Id: I7cb97df2045a0719963b2eea538f9182427393f1
Reviewed-on: https://go-review.googlesource.com/c/build/+/175139
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2019-05-03 20:09:09 +00:00
Dmitri Shuralyov 5284462c4b go.mod: drop indirect requirement of bad grpc version
Version v1.16.0 of the grpc module is known to be bad (because it
doesn't include the fix from grpc/grpc-go#2393), so we don't want
to require it, even indirectly.

Commands run:

	go mod edit -droprequire=google.golang.org/grpc
	go mod tidy
	go test ./...

Updates golang/go#30833

Change-Id: I549dd5276ae19aa89c18cf2e9c981e81b8ffdd11
Reviewed-on: https://go-review.googlesource.com/c/build/+/167597
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-14 13:38:21 +00:00
Dmitri Shuralyov 6d820572de maintner/cmd/maintserve: carve out into a separate module
This change creates a new module with the module path
golang.org/x/build/maintner/cmd/maintserve, and moves the maintserve
command into it. This is done by adding a go.mod file in the
maintner/cmd/maintserve directory. As a result, the maintserve command
and its dependencies are removed from this and later pseudo-versions of
the golang.org/x/build module.

This is similar to how the h2demo command was carved out into a separate
module in CL 162822.

The motivation for doing this is that the maintserve command requires a
large number of dependencies for its own use, that no other package in
x/build needs. Even though authors of library modules should not be
requiring x/build, it still happens (see golang/go#29935). So, improve
the situation by moving maintserve into a module separate from x/build,
which in turn significantly reduces the dependencies in x/build.

Updates golang/go#29935

Change-Id: Ic64da32be142fedf6475a11fea787cdfe245e0ce
Reviewed-on: https://go-review.googlesource.com/c/build/+/167461
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-03-13 23:40:14 +00:00
Bryan C. Mills ebe19e37a4 all: make go.mod consistent with 'go mod tidy'
Updates golang/go#28136

Change-Id: Id72c814ee39931e7f6a1ab421237b8739d8960db
Reviewed-on: https://go-review.googlesource.com/c/162677
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2019-02-14 16:50:22 +00:00
Bryan C. Mills 56b8367918 all: update dependencies
Commands run:

	go get -u
	go get github.com/russross/blackfriday@v1
	go mod tidy
	go test ./...

Change-Id: I65db2cd0b8dc60bb8a90433d11c4d0e72ddf7099
Reviewed-on: https://go-review.googlesource.com/c/145857
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-10-30 14:53:24 +00:00
Bryan C. Mills d4c3f10458 go.mod: bump go-github to v17
We started using ListTeamMembersOptions in CL 132995, but it requires
go-github v17.

We updated to the v17 API for (*IssuesService).Lock in CL 129075, but
didn't bump the go.mod.

This fixes 'go test ./...' in module mode.

To reproduce this change:
	go get github.com/google/go-github@latest
	go mod tidy

Change-Id: Ie586ebae95331a1674a0efd29a6b9004ac28be40
Reviewed-on: https://go-review.googlesource.com/137317
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2018-09-25 17:14:05 +00:00
Bryan C. Mills ff91e0e28a go.mod: require a newer version of github.com/google/martian
The only valid semantic-version tags for that module are
three-year-old prereleases (v2.0.0-beta.2), and they predate one of
the packages we need to resolve (github.com/google/martian/httpspec).
Explicitly use a newer pseudoversion.

Change-Id: Ia54e8e9f958e300a61bdf226b8d1e24615b3e453
Reviewed-on: https://go-review.googlesource.com/137316
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-09-25 16:27:40 +00:00
Bryan C. Mills 0e768f6406 all: add module definitions
I computed these using a build of the Go toolchain from a working copy at
https://golang.org/cl/128136, patchset 12.

The versions selected by 'go mod tidy' needed two tweaks to pass tests:
go get golang.org/x/text@master
go get github.com/russross/blackfriday@v1

The x/text version bump is because the last tagged version (v0.3.0) is very old
(last December).

The blackfriday bump is because the repository made a breaking change (v2.0.0)
without changing the import path.

With those changes, 'go test ./...' passes at the repo root.
('go test all' fails, possibly due to golang/go#26279.)

Updates golang/go#26279.
Updates golang/go#26872.

Change-Id: Ieac5327e4bddd2b78b981d7683beb98608708a3a
Reviewed-on: https://go-review.googlesource.com/128636
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-08-08 17:55:57 +00:00