commit | 607f1dfb1a2b976115af86da310d39a630f7d887 | [log] [tgz] |
---|---|---|
author | Alexander Rakoczy <alex@golang.org> | Fri Jun 21 16:09:14 2019 -0400 |
committer | Alexander Rakoczy <alex@golang.org> | Mon Jul 08 16:46:08 2019 +0000 |
tree | 979c73f210f9ab361dfa960b22a3fe00a399c708 | |
parent | 78fe0244324ac1f668ad88b0c1f2d8e3c09bfc02 [diff] |
playground: build playground Go from source This changes the playground Dockerfile to build playground from source. Cloud Builds for playground are triggered when a new Go release is tagged. Go release tags are published to repositories before binary releases are published. This change fetches the tagged source in order to build Go, as a tagged binary release may not be available yet. A binary Go release is still downloaded to be used as the GOROOT_BOOTSTRAP. The build steps use maintq to fetch the latest version of Go. maintq currently only outputs in textproto format, requiring a step to parse the git tag. It might be worth adding a flag or special command to maintq to simplify the output to clarify this step of the release process. It might also be worthwhile to move this step into the Makefile, or a checked-in build script. The trigger steps were tested on Cloud Build without the deployment step. Updates golang/go#32606 Change-Id: I811be6aa6b5fb53fce4491e4b4ed235a0f3e62cb Reviewed-on: https://go-review.googlesource.com/c/playground/+/183403 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 -d -p 8080:8080 playground # run some Go code cat /path/to/code.go | go run client.go | curl -s --upload-file - localhost:8080/compile
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 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
Playground releases are also triggered when new tags are pushed to Github. The Cloud Build trigger configuration is defined in cloudbuild_trigger.json.
Triggers can be updated by running the following Make target:
make update-cloudbuild-trigger
To submit changes to this repository, see https://golang.org/doc/contribute.html.