include ../$(RECIPE)/setup.env
include ../Makefile.common

docker-registry-login:
	aws ecr get-login-password --region $(AWS_REGION) \
		| docker login --username AWS --password-stdin $(DOCKER_REGISTRY_URI)/aws-gerrit/gerrit

gerrit-get-plugins:
	# Make sure Prometheus Metrics exporter plugin is installed
	mkdir -p $(@D)/{plugins,lib}

	@echo "Ensure no plugins or libraries are left from previous deployments"
	rm -f $(@D)/{plugins,lib}/*.jar

	@echo "Downloading metrics-reporter-prometheus plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-metrics-reporter-prometheus-bazel-master-$(GERRIT_BRANCH)/$(LAST_BUILD)/metrics-reporter-prometheus/metrics-reporter-prometheus.jar \
	-O ./plugins/metrics-reporter-prometheus.jar \
	|| { echo >&2 "Cannot download metrics-reporter-prometheus plugin: Check internet connection. Aborting"; exit 1; }

	@echo "Downloading javamelody plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-javamelody-bazel-master-$(GERRIT_BRANCH)/$(LAST_BUILD)/javamelody/javamelody.jar \
	-O ./plugins/javamelody.jar \
	|| { echo >&2 "Cannot download javamelody plugin: Check internet connection. Aborting"; exit 1; }

	@echo "Downloading HA plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-high-availability-bazel-$(GERRIT_BRANCH)/$(LAST_BUILD)/high-availability/high-availability.jar \
	-O ./plugins/high-availability.jar \
	|| { echo >&2 "Cannot download high-availability plugin: Check internet connection. Aborting"; exit 1; }

	@echo "Downloading Health Check plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-healthcheck-bazel-$(GERRIT_BRANCH)/$(LAST_BUILD)/healthcheck/healthcheck.jar \
	-O ./plugins/healthcheck.jar \
	|| { echo >&2 "Cannot download healthcheck plugin: Check internet connection. Aborting"; exit 1; }

	@echo "Downloading Metrics Reporter Cloudwatch plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-metrics-reporter-cloudwatch-bazel-$(GERRIT_BRANCH)/$(LAST_BUILD)/metrics-reporter-cloudwatch/metrics-reporter-cloudwatch.jar \
	-O ./plugins/metrics-reporter-cloudwatch.jar \
	|| { echo >&2 "Cannot download metrics-reporter-cloudwatch plugin: Check internet connection. Aborting"; exit 1; }

ifeq ($(MULTISITE_ENABLED),true)
	@echo "Downloading multi-site plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-multi-site-bazel-$(GERRIT_BRANCH)/$(LAST_BUILD)/multi-site/multi-site.jar \
	-O ./plugins/multi-site.jar \
	|| { echo >&2 "Cannot download multi-site plugin: Check internet connection. Aborting"; exit 1; }

	@echo "Symlink multi-site plugin into lib"
	ln -sf ../plugins/multi-site.jar ./lib/multi-site.jar

	@echo "Symlink replication plugin into lib"
	ln -sf ../plugins/replication.jar lib/replication.jar

	@echo "Downloading events-broker library"
	wget $(MAVEN_ARCHIVE)/events-broker/$(EVENTSBROKER_LIB_VER)/events-broker-$(EVENTSBROKER_LIB_VER).jar \
	-O lib/events-broker.jar \
	|| { echo >&2 "Cannot download events-broker-library: Check internet connection. Aborting"; exit 1; }

	@echo "Downloading kafka-events plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-kafka-events-bazel-$(GERRIT_BRANCH)/$(LAST_BUILD)/kafka-events/kafka-events.jar \
	-O ./plugins/kafka-events.jar \
	|| { echo >&2 "Cannot download kafka-events plugin: Check internet connection. Aborting"; exit 1; }

	@echo "Downloading zookeper-refdb-3.5 plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-zookeeper-refdb-bazel-$(GERRIT_BRANCH)/$(LAST_BUILD)/zookeeper-refdb/zookeeper-refdb-zk-3.5.jar \
	-O ./plugins/zookeeper-refdb.jar \
	|| { echo >&2 "Cannot download zookeeper-refdb plugin: Check internet connection. Aborting"; exit 1; }

	@echo "Downloading websession-broker plugin $(GERRIT_BRANCH)"
	wget $(GERRIT_CI)/plugin-websession-broker-bazel-master-$(GERRIT_BRANCH)/$(LAST_BUILD)/websession-broker/websession-broker.jar \
	-O ./plugins/websession-broker.jar \
	|| { echo >&2 "Cannot download websession-broker plugin: Check internet connection. Aborting"; exit 1; }
endif

gerrit-build:
	cat Dockerfile | \
		GERRIT_VERSION=$(GERRIT_VERSION) GERRIT_PATCH=$(GERRIT_PATCH) envsubst | \
		docker build -f - -t aws-gerrit/gerrit:$(IMAGE_TAG) .
	docker tag aws-gerrit/gerrit:$(IMAGE_TAG) $(DOCKER_REGISTRY_URI)/aws-gerrit/gerrit:$(IMAGE_TAG)

gerrit-publish: gerrit-get-plugins docker-registry-login gerrit-build
	docker push $(DOCKER_REGISTRY_URI)/aws-gerrit/gerrit:$(IMAGE_TAG)
