export PROJECT_NAME = logger-lib
export GIT_EMAIL = arquitetura@involves.com
export GIT_USER = Buildkite

export COMPOSE_DOCKER_CLI_BUILD = 1
export DOCKER_BUILDKIT = 1
ID_RUN := $(shell bash -c 'echo $$RANDOM')

.PHONY: dependencies-update
dependencies-update:
	docker build --target=dependencies-update --tag=$(PROJECT_NAME) .
	docker run --name=$(PROJECT_NAME) $(PROJECT_NAME)
	docker cp $(PROJECT_NAME):/data/package.json .
	docker rm -vf $(PROJECT_NAME)

.PHONY: publish
publish:
	docker build \
		--build-arg NPM_TOKEN=$(NPM_TOKEN) \
		--build-arg GIT_EMAIL=$(GIT_EMAIL) \
		--build-arg GIT_USER=$(GIT_USER) \
		--target=publish .

.PHONY: test
test:
	docker build --tag=$(PROJECT_NAME) --target=test .
	docker run --name $(PROJECT_NAME)_test_run_$(ID_RUN) $(PROJECT_NAME)

.PHONY: clean
clean:
	docker rm -vf $(shell docker ps --filter ancestor=logger-lib -aq)

.PHONY: lint
lint:
	@docker build --pull --tag=$(PROJECT_NAME)-lint:latest --target=lint .
	@docker run --rm $(PROJECT_NAME)-lint:latest

.PHONY: coverage
coverage: test
	@rm -rf coverage
	docker cp $(PROJECT_NAME)_test_run_$(ID_RUN):/data/coverage ./
