NAMESPACE ?= golang PACKAGE := bumpversion SHELL := /bin/bash REGISTRY := registry.halfakop.ru REPOSITORY := $(NAMESPACE)/$(PACKAGE) SOURCE_VERSION ?= $(shell cat VERSION) SOURCE_COMMIT ?= $(shell git rev-parse --short=8 HEAD) GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD | sed s,feature/,,g) IMAGE_NAME_TAGGED = $(REPOSITORY):$(SOURCE_VERSION) EXEC=$(PACKAGE).run all: help help: @echo "app - build the application" @echo "tests - run tests" @echo "run - run application locally" @echo "clean - clean build environment" fix: @go fix ./... app: fix @go build -o ./${EXEC} ./src tests: build @go test ./... run: @./${EXEC} clean: @rm -rf ./${EXEC}% release: title clean build login push build: docker build --compress \ -t $(IMAGE_NAME_TAGGED) \ -t $(REGISTRY)/$(IMAGE_NAME_TAGGED) \ --build-arg SOURCE_VERSION=$(SOURCE_VERSION) \ --build-arg SOURCE_COMMIT=$(SOURCE_COMMIT) \ ${DOCKER_OPTS} \ -f Dockerfile . login: $(call check-var-defined,DOCKER_USERNAME) $(call check-var-defined,DOCKER_PASSWORD) @echo ${DOCKER_PASSWORD} | \ docker login -u ${DOCKER_USERNAME} --password-stdin $(REGISTRY) push: docker push $(REGISTRY)/$(IMAGE_NAME_TAGGED) .PHONY: tests release build login push