commit | 0084f7fe9d9e9c62544a50c01f05763220ab78e4 | [log] [tgz] |
---|---|---|
author | Alexander Rakoczy <alex@golang.org> | Wed Apr 15 15:50:35 2020 -0400 |
committer | Alexander Rakoczy <alex@golang.org> | Tue Apr 21 17:14:16 2020 +0000 |
tree | 38d94611296b36910a2843774872d485d6a9209e | |
parent | ede79dd07fdf3a7054ca8fb5f8613d3e671bfe7f [diff] |
playground: show a meaningful error on build timeout Add support for returning a meaningful error message to the user, along with partial build output if present. This change also improves graceful command termination throughout the playground. It introduces internal.WaitOrStop, which will wait for a command to finish, or gracefully stop the command if it has not finished by the time the context is cancelled. This also resolves comments from CL 227351. Updates golang/go#38052 Updates golang/go#38530 Updates golang/go#25224 Change-Id: I3a36ad2c5f3626c9cd5b3c1139543ccde3e17ba1 Reviewed-on: https://go-review.googlesource.com/c/playground/+/228438 Run-TryBot: Alexander Rakoczy <alex@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
This subrepository holds the source for the Go playground: https://play.golang.org/
# build the image docker build -t playground .
docker run --name=play --rm -p 8080:8080 golang/playground & # run some Go code cat /path/to/code.go | go run client.go | curl -s --upload-file - localhost:8080/compile
Playground releases automatically triggered when new Go repository tags are pushed to GitHub, or when master is pushed on the playground repository.
For details, see deploy/go_trigger.json, deploy/playground_trigger.json, and deploy/deploy.json.
After making changes to trigger configuration, update configuration by running the following Make target:
make update-cloudbuild-trigger
The Cloud Build configuration will always build and deploy with the latest supported release of Go.
gcloud builds submit --config deploy/deploy.json .
Building the playground Docker container takes more than the default 10 minute time limit of cloud build, so increase its timeout first (note, app/cloud_build_timeout
is a global configuration value):
gcloud config set app/cloud_build_timeout 1200 # 20 mins
Alternatively, to avoid Cloud Build and build locally:
make docker docker tag golang/playground:latest gcr.io/golang-org/playground:latest docker push gcr.io/golang-org/playground:latest gcloud --project=golang-org --account=you@google.com app deploy app.yaml --image-url=gcr.io/golang-org/playground:latest
Then:
gcloud --project=golang-org --account=you@google.com app deploy app.yaml
To submit changes to this repository, see https://golang.org/doc/contribute.html.