#!/bin/sh set -e set -x . tests/scripts/common-functions . tests/scripts/common-vm get_config export FORGE_HOME=/usr/share/gforge export DIST=wheezy export HOST=$1 prepare_workspace CHECKOUTPATH=$(pwd) COWBUILDERBASE=/var/lib/jenkins/builder/ COWBUILDERCONFIG=$COWBUILDERBASE/config/$DIST.config cd $CHECKOUTPATH/src PKGNAME=$(dpkg-parsechangelog | awk '/^Source:/ { print $2 }') PKGVERS=$(dpkg-parsechangelog | awk '/^Version:/ { print $2 }') MAJOR=${PKGVERS%-*} SMAJOR=${MAJOR#*:} MINOR=${PKGVERS##*-} if [ -d $CHECKOUTPATH/.svn ] ; then MINOR=-$MINOR+svn$(svn info | awk '/^Revision:/ { print $2 }') elif [ -d $CHECKOUTPATH/.bzr ] ; then MINOR=-$MINOR+bzr$(bzr revno) elif [ -d $CHECKOUTPATH/.git ] ; then MINOR=-$MINOR+git$(git describe --always) else MINOR=-$MINOR+$(TZ=UTC date +%Y%m%d%H%M%S) fi ARCH=$(dpkg-architecture -qDEB_BUILD_ARCH) dch -b -v $MAJOR$MINOR -D UNRELEASED "This is $DIST-$ARCH autobuild" sed -i -e "1s/UNRELEASED/$DIST/" debian/changelog pdebuild --configfile $COWBUILDERCONFIG --buildresult $BUILDRESULT CHANGEFILE=${PKGNAME}_$SMAJOR${MINOR}_$ARCH.changes cd $BUILDRESULT REPOPATH=$WORKSPACE/build/debian [ ! -d $REPOPATH ] || rm -r $REPOPATH mkdir -p $REPOPATH/conf cat > $REPOPATH/conf/distributions < /etc/apt/sources.list" ssh root@$HOST "echo \"deb $DEBMIRRORSEC $DIST/updates main\" > /etc/apt/sources.list.d/security.list" ssh root@$HOST "echo \"deb $DEBMIRROR unstable main\" >> /etc/apt/sources.list" ssh root@$HOST "apt-get update" ssh root@$HOST "UCF_FORCE_CONFFNEW=yes DEBIAN_FRONTEND=noninteractive LANG=C apt-get -o debug::pkgproblemresolver=true -y --force-yes install loggerhead libapache2-mod-wsgi" ssh root@$HOST "echo \"deb $DEBMIRROR $DIST main\" > /etc/apt/sources.list" ssh root@$HOST "echo \"deb file:/debian $DIST main\" >> /etc/apt/sources.list" scp -r $WORKSPACE/build/debian root@$HOST:/ gpg --export --armor | ssh root@$HOST "apt-key add -" sleep 5 ssh root@$HOST "apt-get update" # Install fusionforge ssh root@$HOST "UCF_FORCE_CONFFNEW=yes DEBIAN_FRONTEND=noninteractive LANG=C apt-get -y --force-yes install rsync postgresql-contrib fusionforge-full" echo "Set forge admin password" ssh root@$HOST "/usr/share/gforge/bin/forge_set_password $FORGE_ADMIN_USERNAME $FORGE_ADMIN_PASSWORD" ssh root@$HOST "LANG=C a2dissite default ; LANG=C invoke-rc.d apache2 reload" ssh root@$HOST "(echo [core];echo use_ssl=no) > /etc/gforge/config.ini.d/zzz-buildbot.ini" ssh root@$HOST "(echo [moinmoin];echo use_frame=no) >> /etc/gforge/config.ini.d/zzz-buildbot.ini" ssh root@$HOST "(echo [mediawiki];echo unbreak_frames=yes) >> /etc/gforge/config.ini.d/zzz-buildbot.ini" ssh root@$HOST "service nscd stop" # Dump database echo "Dump freshly installed database" ssh root@$HOST "su - postgres -c \"pg_dumpall\" > /root/dump" # Stop cron echo "Stop cron daemon" ssh root@$HOST "invoke-rc.d cron stop" || true # Install selenium tests ssh root@$HOST mkdir $FORGE_HOME/tests make -C 3rd-party/selenium selenium-server.jar cp 3rd-party/selenium/selenium-server.jar tests/ rsync -a --delete tests/ root@$HOST:$FORGE_HOME/tests/ ssh root@$HOST "cat > $FORGE_HOME/tests/config/phpunit" <<-EOF HUDSON_URL=$HUDSON_URL JOB_NAME=$JOB_NAME EOF # Run tests retcode=0 echo "Run phpunit test on $HOST in $FORGE_HOME" ssh root@$HOST "apt-get -y install xfonts-base vnc4server ; mkdir -p /root/.vnc" ssh root@$HOST "cat > /root/.vnc/xstartup ; chmod +x /root/.vnc/xstartup" <> .ssh/authorized_keys fi if ! grep -q StrictHostKeyChecking .ssh/config ; then echo StrictHostKeyChecking no >> .ssh/config fi [ -e /var/lib/gforge/.bazaar/bazaar.conf ] && sed -i -e s,https://,http://,g /var/lib/gforge/.bazaar/bazaar.conf : > /root/phpunit.exitcode $FORGE_HOME/tests/scripts/phpunit.sh DEBDebian70Tests.php &> /var/log/phpunit.log & echo \$! > /root/phpunit.pid wait %1 echo \$? > /root/phpunit.exitcode EOF ssh root@$HOST vncpasswd <