variables: GOCACHE: "${CI_PROJECT_DIR}/_go/cache" # A hack to make Golang-in-Gitlab happy before_script: - mkdir -p ${CI_PROJECT_DIR}/_go/{pkg,bin,cache} - rm -rf /go/pkg - ln -s ${CI_PROJECT_DIR}/_go/pkg /go/pkg - ln -s ${CI_PROJECT_DIR}/_go/bin /go/bin cache: key: "$CI_COMMIT_REF_NAME" paths: - _go untracked: true stages: - deps - test - build deps: stage: deps image: golang:1.12 script: - go get test: stage: test dependencies: - deps image: golang:1.12 script: - go fmt $(go list ./...) - go vet $(go list ./...) - CGO_ENABLED=1 go test -race $(go list ./...) -coverprofile .testCoverage.txt build: stage: build dependencies: - deps image: golang:1.12 script: - go get github.com/ahmetb/govvv - GOOS=linux GOARCH=amd64 CGO_ENABLED=0 govvv build -o release/linux/kubesplit -ldflags '-w -s' - GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 govvv build -o release/darwin/kubesplit -ldflags '-w -s' - GOOS=windows GOARCH=amd64 CGO_ENABLED=0 govvv build -o release/windows/kubesplit -ldflags '-w -s' artifacts: paths: - release/