playground: use Go 1.12

Go 1.12 has been released┬╣ and should be used, so that it's possible
to play with Go programs that rely on Go 1.12-only features.

In Go 1.12, build cache is required. Either GOCACHE must be set,
or HOME must be set so that GOCACHE can be implicitly deduced.
Set HOME and pass it on to the go build invocation inside the
compileAndRun function.

This fixes the following error, detected by the playground test:

	2019/02/26 06:28:44 compile error: build cache is required, but could not
	be located: GOCACHE is not defined and neither $XDG_CACHE_HOME nor $HOME
	are defined
	The command '/bin/sh -c /app/playground test' returned a non-zero code: 1

This is related to issues golang/go#29243 and golang/go#29251,
and the fix in CL 154181.

┬╣ https://groups.google.com/d/msg/golang-announce/Y1RZqnCKUKY/N9yK5c8iBgAJ

Fixes golang/go#30397

Change-Id: I44c5c8928060732f31fd935b114568258c7298c7
Reviewed-on: https://go-review.googlesource.com/c/163798
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2 files changed
tree: f6620dcada93bac1c484c0e279e5fd1938a0d05e
  1. AUTHORS
  2. CONTRIBUTING.md
  3. CONTRIBUTORS
  4. Dockerfile
  5. LICENSE
  6. Makefile
  7. PATENTS
  8. README.md
  9. app.yaml
  10. cache.go
  11. client.go
  12. codereview.cfg
  13. edit.go
  14. edit.html
  15. enable-fake-time.patch
  16. fake_fs.lst
  17. fmt.go
  18. logger.go
  19. main.go
  20. play.go
  21. play_test.go
  22. sandbox.go
  23. server.go
  24. server_test.go
  25. share.go
  26. static/
  27. store.go
  28. vet.go
README.md

playground

This subrepository holds the source for the Go playground: https://play.golang.org/

Building

# build the image
docker build -t playground .

Running

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

Deployment

gcloud --project=golang-org --account=person@example.com app deploy app.yaml

Contributing

To submit changes to this repository, see https://golang.org/doc/contribute.html.