diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7e03afd..dec44bc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,17 +1,25 @@ image: golang:alpine +variables: + GO111MOD: "on" + CGO_ENABLED: "0" + GOOS: "linux" + +cache: + key: ${CI_COMMIT_REF_SLUG} + paths: + - /var/cache/apk + - /go/pkg/mod + stages: - test - review before_script: - - apk add --no-cache git build-base bash make - - mkdir -p /go/src/gitlab.com/$CI_PROJECT_NAMESPACE /go/src/_/builds - - cp -r $CI_PROJECT_DIR /go/src/gitlab.com/$CI_PROJECT_PATH - - ln -s /go/src/gitlab.com/$CI_PROJECT_NAMESPACE /go/src/_/builds/$CI_PROJECT_NAMESPACE + - apk add --no-cache git make - go get github.com/golangci/golangci-lint/cmd/golangci-lint - go install github.com/golangci/golangci-lint/cmd/golangci-lint - - make dep + - make tidy unit_tests: stage: test diff --git a/Makefile b/Makefile index 24bd0f9..c45945b 100644 --- a/Makefile +++ b/Makefile @@ -6,9 +6,9 @@ PACKAGE_PATH := "$(GOPATH)/src/$(PACKAGE_NAME)" PACKAGE_LIST := $(shell go list $(PACKAGE_NAME)/... | grep -v /vendor/) GO_FILES := $(shell find . -name '*.go' | grep -v /vendor/ | grep -v _test.go) -.PHONY: all lint test rase coverage dep +.PHONY: all lint test rase coverage tidy -all: dep test race lint +all: tidy test race lint lint: ## Lint the files @golangci-lint run ./... @@ -16,14 +16,14 @@ lint: ## Lint the files test: ## Run unittests @go test -short $(PACKAGE_NAME)/... -race: dep ## Run data race detector +race: tidy ## Run data race detector @go test -race -short ${PACKAGE_LIST} coverage: ## Generate global code coverage report @go test -cover -v -coverpkg=$(PACKAGE_NAME)/... ${PACKAGE_LIST} -dep: ## Get the dependencies - @go get -v -d -t $(PACKAGE_NAME)/... +tidy: ## Get the dependencies + @go mod tidy help: ## Display this help screen @grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'