-
-
Save jcloutz/a9831d60aefb5e6ca29fd7848a230467 to your computer and use it in GitHub Desktop.
image: golang:1.7 | |
stages: | |
- build | |
- test | |
before_script: | |
- go get github.com/tools/godep | |
- cp -r /builds/user /go/src/github.com/user/ | |
- cd /go/src/github.com/user/repo | |
build-my-project: | |
stage: build | |
script: | |
- godep restore | |
- godep go build | |
test-my-project: | |
stage: test | |
script: | |
- godep restore | |
- godep go test -v -cover ./... |
Hi @jcloutz, instead of using golang images (golang:1.7) which is derived from Debian source giving you 255 MB in size every build and test based on new commit, I recommend you use golang alpine (golang:1.7-alpine), contrast in size (73MB).
You can compare which image fit in you here: https://hub.docker.com/r/library/golang/tags/
Thank you.
If you use the Alpine image then also you need to install git (required by go get
):
before_script:
- apk add --update git
A better solution is to use a soft link:
- ln -s /builds /go/src/gitlab.com
You should indeed use symlinks instead of cp
, else artifacts
and cache
are more difficult to use reliable.
Additionally:
- cd /go/src/gitlab.com/${CI_PROJECT_PATH}
Makes it easier to reuse and it still works after moving a project.
Don't use symlinks. Various tools like go test
, etc. ignore symlinks
anyone has deployment job example?
@SCKelemen it's copying the repo's cloned files into the $GOPATH like you'd end up with a
go get
command