Out-of-the-box experience with bundled plugins and intro
Bundle extra plugins into Gerrit 2.14 and provide an out-of-the-box
experience with introduction page and plugin-manager to
install additional plugins at first admin login access.
Change-Id: I75fc83c381b4d47bb94939b5adbf383e4cebe363
diff --git a/fpm/Makefile b/fpm/Makefile
index 41b6725..ee29b50 100644
--- a/fpm/Makefile
+++ b/fpm/Makefile
@@ -15,14 +15,19 @@
GERRIT_SITE=/var/gerrit
LICENSE=Apache 2.0
-VENDOR=
+VENDOR=GerritForge
WEB_URL=https://www.gerritcodereview.com/
WAR=$(BUILD_ROOT)/bin/gerrit.war
-PLUGINS=plugin-manager
-PLUGINS_JARS=$(foreach PLUGIN,$(PLUGINS),$(PLUGIN).jar)
-PLUGINS_PATHS=$(foreach PLUGIN_JAR,$(PLUGINS_JARS),$(BUILD_ROOT)/plugins/$(PLUGIN_JAR))
-BRANCH=stable-2.14
+PLUGINS_CI=https://gerrit-ci.gerritforge.com/job
+LIBS_JOBS= \
+ plugin-out-of-the-box-bazel-master-stable-2.14/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/out-of-the-box/out-of-the-box.jar
+PLUGINS_JOBS= \
+ plugin-plugin-manager-bazel-stable-2.14/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/plugin-manager/plugin-manager.jar \
+ plugin-avatars-gravatar-bazel-master-stable-2.14/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/avatars-gravatar/avatars-gravatar.jar \
+ plugin-gitiles-bazel-master-stable-2.14/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/gitiles/gitiles.jar \
+ plugin-delete-project-bazel-master-stable-2.14/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/delete-project/delete-project.jar \
+ plugin-uploadvalidator-bazel-stable-2.14/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/uploadvalidator/uploadvalidator.jar
RPM_OUT=$(OUT)/gerrit-$(VERSION)-$(RELEASE).$(BUILD_ARCH).rpm
DEB_OUT=$(OUT)/gerrit-$(VERSION)-$(RELEASE).$(BUILD_ARCH).deb
@@ -62,7 +67,8 @@
mkdir -p $(BUILD_ROOT)/etc
mkdir -p $(BUILD_ROOT)/bin
mkdir -p $(BUILD_ROOT)/plugins
- cp $(CONFIGS) $(BUILD_ROOT)/etc
+ mkdir -p $(BUILD_ROOT)/lib
+ cp -R $(CONFIGS) $(BUILD_ROOT)/etc
-groupadd $(GROUP)
$(eval GROUP_ID := $(shell /usr/bin/getent group $(GROUP) | cut -d ':' -f 3))
-useradd -g $(GROUP_ID) $(USER)
@@ -84,8 +90,15 @@
$(WAR): $(basedir $(WAR))
curl -o $@ $(URL)
-$(BUILD_ROOT)/plugins/%.jar:
- PLUGIN_NAME=`basename $@ .jar` && curl -o $@ $(CI_URL)/job/plugin-$$PLUGIN_NAME-bazel-$(BRANCH)/lastSuccessfulBuild/artifact/bazel-genfiles/plugins/$$PLUGIN_NAME/$$PLUGIN_NAME.jar
+plugins:
+ for job in $(PLUGINS_JOBS); \
+ do curl -o $(BUILD_ROOT)/plugins/`basename $$job` $(PLUGINS_CI)/$$job; \
+ done
+
+libs:
+ for job in $(LIBS_JOBS); \
+ do curl -o $(BUILD_ROOT)/lib/`basename $$job` $(PLUGINS_CI)/$$job; \
+ done
$(SCRIPTS_ROOT)/%.sh: scripts/%.sh
echo "#!/bin/bash" > $@
@@ -94,10 +107,10 @@
echo "GERRIT_SITE=$(GERRIT_SITE)" >> $@
cat $< >> $@
-$(RPM_OUT): $(WAR) $(PLUGINS_PATHS) $(CONFIGS) $(BUILD_SCRIPTS) chown
+$(RPM_OUT): $(WAR) plugins libs $(CONFIGS) $(BUILD_SCRIPTS) chown
fpm -t rpm -p $@ $(RPM_OPTS)
-$(DEB_OUT): $(WAR) $(PLUGINS_PATHS) $(CONFIGS) $(BUILD_SCRIPTS) chown
+$(DEB_OUT): $(WAR) plugins libs $(PLUGINS_PATHS) $(CONFIGS) $(BUILD_SCRIPTS) chown
fpm -t deb -p $@ $(DEB_OPTS)
-.PHONY: clean clobber prepare chown rpm deb install install-deb install-rpm
+.PHONY: clean clobber prepare chown rpm deb install install-deb install-rpm plugins libs
diff --git a/fpm/etc/gerrit.config b/fpm/etc/gerrit.config
index c3586ec..b479d90 100644
--- a/fpm/etc/gerrit.config
+++ b/fpm/etc/gerrit.config
@@ -13,6 +13,8 @@
listenAddress = *:29418
[httpd]
listenUrl = http://*:8080/
+ filterClass = com.googlesource.gerrit.plugins.ootb.FirstTimeRedirect
+ firstTimeRedirectUrl = /login/%23%2F?account_id=1000000
[cache]
directory = cache
[plugins]
diff --git a/fpm/scripts/after-install.sh b/fpm/scripts/after-install.sh
index 708d122..89780c6 100755
--- a/fpm/scripts/after-install.sh
+++ b/fpm/scripts/after-install.sh
@@ -11,11 +11,6 @@
[ $? != 0 ] && echo "FAILED" && exit 1
echo "DONE"
-echo -n "Reindexing Gerrit .......... "
-$SUDO java -jar $GERRIT_SITE/bin/gerrit.war reindex -d $GERRIT_SITE >> $LOG 2>>$LOG
-[ $? != 0 ] && echo "FAILED" && exit 2
-echo "DONE"
-
echo -n "Setting user/group owner ... "
chown -R $USER:$GROUP $GERRIT_SITE
echo "DONE"
@@ -29,7 +24,8 @@
echo ""
echo "Installation completed"
echo ""
-echo "To start Gerrit server, run: /etc/init.d/gerrit start"
+
+/etc/init.d/gerrit start
URL=$(git config -f /etc/gerrit/gerrit.config gerrit.canonicalWebUrl)
[ -z "$URL" ] || echo "To start using Gerrit, open: $URL"