Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/golang/playground
[mirror] The Go Playground
https://github.com/golang/playground
Last synced: about 1 month ago
JSON representation
[mirror] The Go Playground
- Host: GitHub
- URL: https://github.com/golang/playground
- Owner: golang
- License: bsd-3-clause
- Created: 2015-01-21T07:20:53.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-09-11T17:19:52.000Z (2 months ago)
- Last Synced: 2024-09-28T21:20:56.557Z (about 1 month ago)
- Language: Go
- Homepage:
- Size: 484 KB
- Stars: 748
- Watchers: 35
- Forks: 205
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# playground
[![Go Reference](https://pkg.go.dev/badge/golang.org/x/playground.svg)](https://pkg.go.dev/golang.org/x/playground)
This subrepository holds the source for the Go playground:
https://go.dev/play/## Building
```bash
# build the image
docker build -t golang/playground .
```## Running
```bash
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
```To run the "gotip" version of the playground, set `GOTIP=true`
in your environment (via `-e GOTIP=true` if using `docker run`).## Deployment
### 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/go_trigger.yaml),
[deploy/playground_trigger.yaml](deploy/playground_trigger.yaml),
and [deploy/deploy.json](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-triggers` and `pull-cloudbuild-triggers` make targets.### Deploy via Cloud Build
The Cloud Build configuration will always build and deploy with the latest supported release of Go.
```bash
gcloud --project=golang-org builds submit --config deploy/deploy.json .
```To deploy the "Go tip" version of the playground, which uses the latest
development build, use `deploy_gotip.json` instead:```bash
gcloud --project=golang-org builds submit --config deploy/deploy_gotip.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):```bash
gcloud config set app/cloud_build_timeout 1200 # 20 mins
```Alternatively, to avoid Cloud Build and build locally:
```bash
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 [email protected] app deploy app.yaml --image-url=gcr.io/golang-org/playground:latest
```Then:
```bash
gcloud --project=golang-org [email protected] app deploy app.yaml
```## Contributing
To submit changes to this repository, see
https://golang.org/doc/contribute.html.