SHELL = /bin/bash
PHP_VERSION ?= 7.4
PHP_CLI_BASE = docker run --rm \
	-e USER_ID="$(shell id -u)" \
	-v "$(shell pwd):/src" \
	$(if $(COMPOSER_HOME),-v "$(COMPOSER_HOME):/tmp/.composer") \
	-e COMPOSER_MEMORY_LIMIT=-1 \
	-w /src
PHP_IMAGE := eu.gcr.io/ac-registry/php${PHP_VERSION}-node16:cli
PHP_CLI := ${PHP_CLI_BASE} ${PHP_IMAGE}
PHP_CLI_IT := ${PHP_CLI_BASE} -it ${PHP_IMAGE}

BUILDDIR = build

ifndef CI
	LOGIN_REQUIREMENTS = login
endif

.PHONY: login
login:
	-gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin https://eu.gcr.io

.PHONY: prepare
prepare:
	mkdir -p ${BUILDDIR}/logs/coverage ${BUILDDIR}/docs
	-rm composer.lock
	$(PHP_CLI) php -v
	$(PHP_CLI) composer install -n --no-progress

.PHONY: phpunit
phpunit:
	${PHP_CLI} vendor/phpunit/phpunit/phpunit --log-junit ${BUILDDIR}/logs/phpunit.xml

.PHONY: cleanup
cleanup:
	-rm -rf ${BUILDDIR}
	-rm composer.lock

.PHONY: sh
sh: ${LOGIN_REQUIREMENTS}
	${PHP_CLI_IT} bash
