BUILD_NUMBER  ?= 1

PROJECT       ?= notifications-worker
PROJECT_GROUP ?= rti

AWS_REGION          ?= us-east-1
ECR_REPOSITORY_NAME ?= rti/lambda/notifications-worker

AWS_PROFILE      ?= gdb-artistapp-dev
AWS_ACCOUNT_ID   ?= 714609459574
ECR_REGISTRY     ?= ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com
ECR_REGISTRY_URI ?= ${ECR_REGISTRY}/${ECR_REPOSITORY_NAME}

REVISION  ?= $(shell git rev-parse --short=8 HEAD)
BUILDTIME ?= $(shell date -u +"%Y%m%d%H%M%S")
VERSION   ?= "build-${BUILDTIME}.${REVISION}"
SEMVER    ?= $(shell cat VERSION )

## -
## Local commands:

##   local/init - install bumpversion
.PHONY: local/init
local/init:
	@pip install --user --upgrade bumpversion

## -
## Version management

##   version/patch - increment version patch
.PHONY: version/patch
version/patch:
	@npm version patch

##   version/minor - increment version minor
.PHONY: version/minor
version/minor:
	@npm version minor

##   version/major - increment version major
.PHONY: version/major
version/major:
	@npm version major

## -
## Docker commands:

##   docker/login - login to AWS ECR registry using docker, aws configuration need to be set first
.PHONY:docker/login
docker/login:
	echo "Login to $(ECR_REGISTRY)"
	@aws ecr get-login \
		--profile ${AWS_PROFILE} \
		--no-include-email \
		--region ${AWS_REGION} | awk '{print $$6}' | \
		docker login -u AWS --password-stdin https://${ECR_REGISTRY} || aws ecr get-login-password \
		--profile ${AWS_PROFILE} \
		--region ${AWS_REGION} | \
		docker login --username AWS --password-stdin ${ECR_REGISTRY}

##   docker/image/build - build docker image
.PHONY: docker/image/build
docker/image/build:
	@docker build \
		-t ${ECR_REGISTRY_URI}:${VERSION} \
		--target runtime \
		.

##   docker/image/push - push an image to a registry
.PHONY: docker/image/push
docker/image/push:
	@docker push ${ECR_REGISTRY_URI}:${VERSION}

##   test - run unit tests
.PHONY:test
test:
	@docker run -i --rm -v $$(pwd):/usr/src --workdir /usr/src node:14.15.5 /bin/sh -c 'npm install && npm run test'

## -
## help - this message
.PHONY: help
help: Makefile
	@echo "Application: ${APP}\n"
	@echo "Run command:\n  make <target>\n"
	@grep -E -h '^## .*' $(MAKEFILE_LIST) | sed -n 's/^##//p'  | column -t -s '-' |  sed -e 's/^/ /'
