-
-
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 ./... |
@SCKelemen it's copying the repo's cloned files into the $GOPATH like you'd end up with a go get command
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?
What does this part do?