Skip to content
This repository has been archived by the owner on Apr 19, 2021. It is now read-only.

Add Golang to Languages and Frameworks #384

Merged
merged 16 commits into from
Jan 10, 2020
82 changes: 82 additions & 0 deletions src/docs/go_in_gitpod.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Go

Gitpod supports Go right out of the box, but there are still ways to optimize your Go experience within Gitpod.

## Examples

Before we start, here are some already gitpodified repositories to give you an idea of what to expect!
jankeromnes marked this conversation as resolved.
Show resolved Hide resolved

| Name | Open In Gitpod Button |
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------: |
| [go-swagger/go-swagger](https://github.com/go-swagger/go-swagger) | [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/go-swagger/go-swagger) |
| [gitpod-io/go-gin-app](https://github.com/gitpod-io/go-gin-app) | [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/gitpod-io/go-gin-app) |
| [gosh-terminal/gosh](https://github.com/gosh-terminal/gosh) | [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/gosh-terminal/gosh) |
| [gitpod-io/self-hosted](https://github.com/gitpod-io/self-hosted) | [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/gitpod-io/self-hosted) |

## Workspace Configuration

### VSCode Extensions

| Name | Description |
| -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [Go Test Explorer](https://marketplace.visualstudio.com/items?itemName=premparihar.gotestexplorer) | Provides Test Explorer for Go which enables to run your tests at the click of a button! |

To install Go Test Explorer for your repository, add the following to your [`.gitpod.yml`](https://www.gitpod.io/docs/41_config_gitpod_file/)

```YAML
vscode:
extensions:
- [email protected]:jvUM8akrQ67vQxfjaxCgCg==
```

### **[Start-up tasks](https://www.gitpod.io/docs/44_config_start_tasks/)**

Here is how to have your dependencies automatically fetched before you open your Gitpod workspace!

```yaml
tasks:
- init: go get -v -t -d ./...
```

A full example of a [`.gitpod.yml`](https://www.gitpod.io/docs/41_config_gitpod_file/) file might look like this

```yaml
image: gitpod/workspace-full

tasks:
- init: go get -v -t -d ./...

vscode:
extensions:
- [email protected]:jvUM8akrQ67vQxfjaxCgCg==
jankeromnes marked this conversation as resolved.
Show resolved Hide resolved
```

### Using the `dep` dependency manager in Gitpod

If your project uses the [`dep`](https://golang.github.io/dep/) dependency manager then you need to add a [`.gitpod.Dockerfile`](https://www.gitpod.io/docs/42_config_docker/) to your project. A basic example that extends the default workspace image might be something like:

```Dockerfile
FROM gitpod/workspace-full

USER gitpod

RUN brew install dep
```

Also, don't forget to reference the above Dockerfile in your `.gitpod.yml` configuration file, like so:

```YAML
image:
file: .gitpod.Dockerfile

tasks:
- init: dep ensure

vscode:
extensions:
- [email protected]:jvUM8akrQ67vQxfjaxCgCg==
```

## External Resources

- [VSCode/Go Documentation](https://code.visualstudio.com/docs/languages/go) The stuff here also applies to Gitpod!
1 change: 1 addition & 0 deletions src/docs/languages_and_frameworks.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ Below is a list of language and framework specific tips & tricks.
* [Java](/docs/java_in_gitpod/)
* [Python](/docs/python_in_gitpod/)
* [Julia](/docs/julia_in_gitpod/)
* [Go](/docs/go_in_gitpod/)
4 changes: 4 additions & 0 deletions src/docs/menu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,10 @@ export const MENU: MenuEntry[] = [
M(
"Julia",
"julia_in_gitpod"
),
M(
"Go",
"go_in_gitpod"
)
]
),
Expand Down