ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))

VERSION=$(shell git rev-parse --short HEAD)
TAG=arkindex-backend

.PHONY: build

clean:
	rm -rf *.egg-info build dist .eggs
	find . -name '*.pyc' -exec rm {} \;

build: clean
	docker build $(ROOT_DIR) -t $(TAG):$(VERSION)

publish-version: require-docker-auth
	$(MAKE) build TAG=registry.gitlab.com/arkindex/backend
	docker push registry.gitlab.com/arkindex/backend:$(VERSION)

latest:
	$(MAKE) publish-version VERSION=latest

release: require-version
	echo $(version) > $(ROOT_DIR)/VERSION
	$(MAKE) publish-version VERSION=$(version)
	git commit $(ROOT_DIR)/VERSION -m 'Release $(version)'
	git tag $(version)

require-docker-auth:
	@grep registry.gitlab.com ~/.docker/config.json > /dev/null || (echo "Docker Login on registry.gitlab.com"; docker login registry.gitlab.com)

require-version:
	@if [ ! "$(version)" ]; then echo "Missing version to publish"; exit 1; fi
	@git rev-parse $(version) >/dev/null 2>&1 && (echo "Version $(version) already exists on local git repo !" && exit 1) || true