deploy: use gcloud to manage triggers, trigger from GCR

The GCP UI is nicer for editing triggers, and the gcloud command now has
beta support for import/export. It wants YAML format, though. Delete the
json versions and replace them with freshly pulled versions, including
the change to trigger from GCR.

Change-Id: I3a20951d94b9a9522f28b07cc772d097679fb5a2
Trust: Heschi Kreinick <>
Trust: Alexander Rakoczy <>
Run-TryBot: Heschi Kreinick <>
TryBot-Result: Go Bot <>
Reviewed-by: Alexander Rakoczy <>
6 files changed
tree: b2a9a5dfdab5a45ef0c6a017f1a724387222e488
  1. .gitignore
  5. Dockerfile
  7. Makefile
  10. app.yaml
  11. cache.go
  12. client.go
  13. cmd/
  14. codereview.cfg
  15. deploy/
  16. edit.go
  17. edit.html
  18. enable-fake-time.patch
  19. examples/
  20. fake_fs.lst
  21. fmt.go
  22. fmt_test.go
  23. go.mod
  24. go.sum
  25. internal/
  26. logger.go
  27. main.go
  28. metrics.go
  29. play.go
  30. play_test.go
  31. sandbox.go
  32. sandbox/
  33. sandbox_test.go
  34. server.go
  35. server_test.go
  36. share.go
  37. static/
  38. store.go
  39. tests.go
  40. txtar.go
  41. txtar_test.go
  42. vet.go


Go Reference

This subrepository holds the source for the Go playground:


# build the image
docker build -t golang/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


Deployment Triggers

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.yaml, deploy/playground_trigger.yaml, and deploy/deploy.json.

Changes to the trigger configuration can be made to the YAML files, or in the GCP UI, which should be kept in sync using the push-cloudbuild-trigger and pull-cloudbuild-trigger make targets.

Deploy via Cloud Build

The Cloud Build configuration will always build and deploy with the latest supported release of Go.

gcloud builds submit --config deploy/deploy.json .

Deploy via gcloud app deploy

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
docker push
gcloud --project=golang-org app deploy app.yaml


gcloud --project=golang-org app deploy app.yaml


To submit changes to this repository, see