diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ec49e60..0be82e2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,21 +1,26 @@ image: golang:latest before_script: - - make install-deps + - make go/dependencies stages: - test - build +dependencies: + stage: test + script: + - make go/checkDependencies + format: stage: test script: - - make format + - make go/checkFmt test: stage: test script: - - make test + - make go/test build: stage: build @@ -31,7 +36,7 @@ build: - dist/checksums.txt expire_in: 1 day -docker-gitlab: +docker/gitlab: stage: build only: - main @@ -44,6 +49,6 @@ docker-gitlab: - apk add make - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY script: - - make docker/build-latest - - make docker/build-tag + - make docker/build/latest + - make docker/build/tag - docker push registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter diff --git a/.goreleaser.yml b/.goreleaser.yml index 366dc27..0113e8d 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -2,7 +2,7 @@ # Make sure to check the documentation at http://goreleaser.com before: hooks: - - make install-deps + - make go/dependencies builds: - dir: src diff --git a/Makefile b/Makefile index 097b4cd..f90f80e 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,22 @@ -install-deps: +go/dependencies: cd src/ && go mod download -# Standard go test -test: - cd src/ && go test ./... -v -race - # Make sure no unnecessary dependencies are present -go-mod-tidy: +go/checkDependencies: cd src/ && go mod tidy -v git diff-index --quiet HEAD -format: - cd src/ && go fmt $(go list ./... | grep -v /vendor/) - cd src/ && go vet $(go list ./... | grep -v /vendor/) +# Standard go test +go/test: + cd src/ && go test ./... -v -race -generateChangelog: +go/fmt: + cd src/ && go fmt ./... + +go/checkFmt: + test -z $(shell gofmt -l .) + +docs/genChangelog: ./tools/git-chglog_linux_amd64 --config tools/chglog/config.yml 0.0.0.. > CHANGELOG_gen.md build/snapshot: @@ -27,8 +29,8 @@ build/docker: cd src/ && go build -o exporter \ -ldflags '-X main.version=$(shell git describe --tags) -X main.commit=${shell git rev-parse HEAD} -X "main.date=${shell date --rfc-3339=seconds}" -X main.builtBy=docker' exporter.go -docker/build-latest: +docker/build/latest: docker build -t registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter:latest . -docker/build-tag: +docker/build/tag: docker build -t registry.gitlab.com/hectorjsmith/fail2ban-prometheus-exporter:$(shell git describe --tags) .