BUILD_NUMBER?=1
PROJECT?=apolloapp
REPOSITORY?=${PROJECT}
TAG?=develop
ECR?=475275892927.dkr.ecr.us-east-1.amazonaws.com

.PHONY:docker/build
docker/build:
	docker build \
		-t ${REPOSITORY}:${TAG}-${BUILD_NUMBER} \
		-t ${ECR}/${REPOSITORY}:${TAG} \
		--build-arg STATIC_ROOT \
		--build-arg SENTRY_DSN \
		--build-arg SENTRY_AUTH_TOKEN \
		--build-arg SENTRY_RELEASE_NAME \
		--build-arg AUTH0_DOMAIN \
		--build-arg AUTH0_CLIENT_ID \
		--build-arg AUTH0_API_AUDIENCE \
		--build-arg YOUTUBE_ALLOWED_USER_IDS \
		--build-arg DUPLICATIONAPI_URI \
		--target server \
		.

.PHONY:docker/login
docker/login:
	aws ecr get-login --no-include-email | awk '{print $$6}' | docker login -u AWS --password-stdin https://${ECR}

.PHONY:docker/push
docker/push: docker/login
	docker push ${ECR}/${REPOSITORY}:${TAG}

.PHONY:test
test: docker/build
	docker build \
    		--cache-from ${ECR}/${REPOSITORY}:${TAG} \
    		-t ${REPOSITORY}:${TAG}-${BUILD_NUMBER}-test \
    		--build-arg STATIC_ROOT \
    		--build-arg SENTRY_DSN \
    		--build-arg SENTRY_AUTH_TOKEN \
    		--build-arg SENTRY_RELEASE_NAME \
    		--build-arg AUTH0_DOMAIN \
    		--build-arg AUTH0_CLIENT_ID \
    		--build-arg AUTH0_API_AUDIENCE \
    		--build-arg YOUTUBE_ALLOWED_USER_IDS \
    		--build-arg DUPLICATIONAPI_URI \
    		--target test \
    		.
	docker run \
		-e AUTH0_DOMAIN \
		-e AUTH0_CLIENT_ID \
		-e AUTH0_API_AUDIENCE \
		--rm ${REPOSITORY}:${TAG}-${BUILD_NUMBER}-test \
		yarn test:unit
