Skip to content

Instantly share code, notes, and snippets.

@mikeatlas
Last active February 2, 2024 08:08
Show Gist options
  • Save mikeatlas/3f21d8d64b8c9217c7d3 to your computer and use it in GitHub Desktop.
Save mikeatlas/3f21d8d64b8c9217c7d3 to your computer and use it in GitHub Desktop.
Example Go GitLab CI setup (no root/sudo required)
# See docs/examples
# http://doc.gitlab.com/ce/ci/quick_start/README.html
# http://doc.gitlab.com/ce/ci/yaml/README.html
# GitLab CI template for Go tests. Note this installs
# a new working copy of Go in a non-standard path such
# that sudo/root is not needed for the install stage.
# note that this particular install-environment stage
# is overly verbose in order to debug anything tricky
# or weird in your environment - feel free to trim it
# down as needed
stages:
- install-environment
- build
- test
install-go:
stage: install-environment
script:
- export CURRENT_BUILD_PATH=$(pwd)
- echo $PATH
- rm -rf $HOME/golang
- rm -rf $HOME/gopath
- mkdir -p $HOME/golang # for GOROOT (contains the Go binary & core packages)
- mkdir -p $HOME/gopath # for GOPATH (contains code and external packages)
- curl http://storage.googleapis.com/golang/go1.5.2.linux-amd64.tar.gz 2>/dev/null > go1.5.2.linux-amd64.tar.gz
- tar -C $HOME/golang -xzf go1.5.2.linux-amd64.tar.gz
- export GOROOT=$HOME/golang/go
- export GOPATH=$HOME/gopath
- export PATH=$PATH:$GOROOT/bin
- export PATH=$PATH:$GOPATH/bin
- (if [[ "$(go version)" == *"go version go1.5"* ]]; then echo "✓ Go binary installed!"; else echo "Go binary not installed"; exit -1; fi);
- go version
- echo $PATH
- go env
- which go
build-my-project:
stage: build
script:
- cd $CURRENT_BUILD_PATH
- go build
test-my-project:
stage: test
script:
- cd $CURRENT_BUILD_PATH
- go test
@lcnja
Copy link

lcnja commented Jun 2, 2018

How to use dep cache for gitlab ci.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment