.PHONY: help
.DEFAULT_GOAL := help

COMPONENT = porta
VERSION ?=  2.13
GA_VERSION ?=  2.12
TARGET ?= 3scale-amp-$(VERSION)-rhel-7-candidate

GIT_BRANCH = $(shell git symbolic-ref --short HEAD)

TAG ?= $(shell cut -f 2 -d ' ' source-repos)
BRANCH ?= $(TAG)
SOURCE ?= $(BRANCH).tar.gz
BUILD_TYPE ?= local

BACKEND_IMAGE := registry.redhat.io/3scale-amp2/backend-rhel8:3scale$(GA_VERSION)
MEMCACHED_IMAGE := registry.redhat.io/3scale-amp2/memcached-rhel7:3scale$(GA_VERSION)

$(COMPONENT)-$(SOURCE):
	rhpkg sources

build: $(COMPONENT)-$(SOURCE) ## build on Docker with BUILD_TYPE = [local (default)]
	docker build . --build-arg BUILD_TYPE=$(BUILD_TYPE)

test: ## build on OSBS w/ --scratch
	rhpkg container-build --scratch --target=$(TARGET)

brew: ## build on OSBS
ifneq (,$(findstring private-,$(GIT_BRANCH)))
	$(error can't build from private branch $(GIT_BRANCH))
else
	rhpkg container-build --target=$(TARGET)
endif

# Check http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
help: ## Print this help
	@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)


$(COMPONENT)-$(BRANCH)/Gemfile.lock: $(COMPONENT)-$(SOURCE)
	tar --extract --gunzip --touch --file=$(COMPONENT)-$(SOURCE)

include docker-compose.mk

run: export PORTA_IMAGE := $(SMOKE_IMAGE)
run: export BACKEND_IMAGE := $(BACKEND_IMAGE)
run: $(DOCKER_COMPOSE)
	$(DOCKER_COMPOSE) run --user=1002 --rm system $(CMD)

.PHONY: smoke
smoke: export PORTA_IMAGE := $(SMOKE_IMAGE)
smoke: export BACKEND_IMAGE := $(BACKEND_IMAGE)
smoke: export MEMCACHED_IMAGE := $(MEMCACHED_IMAGE)
smoke: export DOCKER_COMPOSE := $(DOCKER_COMPOSE)
smoke: $(DOCKER_COMPOSE) ## Run some Smoke tests
	./smoke.sh
