blob: 2d5020f912b31dfe5cd63513d94a980b4d97173b [file] [log] [blame] [edit]
include ../Version.mk
URL=https://storage.googleapis.com/gerrit-releases/gerrit-$(WAR_VERSION).war
CI_URL=https://gerrit-ci.gerritforge.com
NAME=gerrit
OUT=$(shell pwd)/out
BUILD_ROOT=$(shell pwd)/build
WAR=$(BUILD_ROOT)/bin/gerrit.war
PLUGINS_CI=https://gerrit-ci.gerritforge.com/job
LIBS=out-of-the-box
PLUGINS=avatars-gravatar \
uploadvalidator
TAR_OUT=$(OUT)/gerrit-$(WAR_VERSION).tar.gz
TAR_OUT_SIG=$(TAR_OUT).asc
TAR_OUT_SHA256=$(TAR_OUT).sha256
TAR_OUT_SHA256_SIG=$(TAR_OUT_SHA256).asc
CONFIGS=$(wildcard etc/*)
all: prepare $(TAR_OUT) $(TAR_OUT_SIG) $(TAR_OUT_SHA256) $(TAR_OUT_SHA256_SIG)
clean:
rm -Rf $(OUT)
prepare: $(CONFIGS)
mkdir -p $(OUT)
mkdir -p $(BUILD_ROOT)/etc
mkdir -p $(BUILD_ROOT)/bin
mkdir -p $(BUILD_ROOT)/plugins
mkdir -p $(BUILD_ROOT)/lib
mkdir -p $(BUILD_ROOT)/cache
mkdir -p $(BUILD_ROOT)/db
mkdir -p $(BUILD_ROOT)/git
mkdir -p $(BUILD_ROOT)/index
cp -R $(CONFIGS) $(BUILD_ROOT)/etc
clobber: clean
rm -Rf $(BUILD_ROOT)
$(WAR): $(basedir $(WAR))
curl -f -o $@ $(URL)
plugins:
for plugin in $(PLUGINS); \
do set -e && echo ">> Download: $$job" && \
(curl -f -o $(BUILD_ROOT)/plugins/$$plugin.jar $(PLUGINS_CI)/plugin-$$plugin-bazel-$(BRANCH)/lastSuccessfulBuild/artifact/bazel-bin/plugins/$$plugin/$$plugin.jar || \
curl -f -o $(BUILD_ROOT)/plugins/$$plugin.jar $(PLUGINS_CI)/plugin-$$plugin-bazel-master-$(BRANCH)/lastSuccessfulBuild/artifact/bazel-bin/plugins/$$plugin/$$plugin.jar); \
done
libs:
for lib in $(LIBS); \
do set -e && echo ">> Download: $$job" && \
(curl -f -o $(BUILD_ROOT)/lib/$$lib.jar $(PLUGINS_CI)/plugin-$$lib-bazel-$(BRANCH)/lastSuccessfulBuild/artifact/bazel-bin/plugins/$$lib/$$lib.jar || \
curl -f -o $(BUILD_ROOT)/lib/$$lib.jar $(PLUGINS_CI)/plugin-$$lib-bazel-master-$(BRANCH)/lastSuccessfulBuild/artifact/bazel-bin/plugins/$$lib/$$lib.jar); \
done
$(TAR_OUT): $(WAR) plugins libs $(CONFIGS)
tar -C $(BUILD_ROOT) -f $@ -cvz .
%.asc: %
GPG_TTY=`tty` gpg --output $@ --armor -b --sign $<
%.sha256: %
sha256sum $< > $@
.PHONY: clean clobber prepare plugins libs