From af46939af5dbe914e07c9b1ec0af2560b38ffbc6 Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Fri, 6 Nov 2015 22:21:30 +0000 Subject: Bug 1222497 - Refactor the BMO docker image with new file and script structure while minimizing final image size --- docker/scripts/runtests.sh | 96 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 docker/scripts/runtests.sh (limited to 'docker/scripts/runtests.sh') diff --git a/docker/scripts/runtests.sh b/docker/scripts/runtests.sh new file mode 100755 index 000000000..a2b5773b8 --- /dev/null +++ b/docker/scripts/runtests.sh @@ -0,0 +1,96 @@ +#!/bin/bash +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +BUILDBOT=$BUGZILLA_ROOT/docker/scripts/buildbot_step + +if [ -z "$TEST_SUITE" ]; then + TEST_SUITE=sanity +fi + +set -e + +# Output to log file as well as STDOUT/STDERR +exec > >(tee /runtests.log) 2>&1 + +echo "== Retrieving Bugzilla code" +echo "Checking out $GITHUB_BASE_GIT $GITHUB_BASE_BRANCH ..." +mv $BUGZILLA_ROOT "${BUGZILLA_ROOT}.back" +git clone $GITHUB_BASE_GIT --branch $GITHUB_BASE_BRANCH $BUGZILLA_ROOT +cd $BUGZILLA_ROOT +if [ "$GITHUB_BASE_REV" != "" ]; then + echo "Switching to revision $GITHUB_BASE_REV ..." + git checkout -q $GITHUB_BASE_REV +fi + +echo -e "\n== Checking dependencies for changes" +$BUGZILLA_ROOT/docker/scripts/install_deps.sh + +if [ "$TEST_SUITE" = "sanity" ]; then + $BUILDBOT "Sanity" prove -f -v t/*.t + exit $? +fi + +if [ "$TEST_SUITE" = "docs" ]; then + export JADE_PUB=/usr/share/sgml + export LDP_HOME=/usr/share/sgml/docbook/dsssl-stylesheets-1.79/dtds/decls + cd $BUGZILLA_ROOT/docs + $BUILDBOT "Documentation" perl makedocs.pl --with-pdf + exit $? +fi + +echo -e "\n== Starting database" +/usr/bin/mysqld_safe & +sleep 3 +mysql -u root mysql -e "CREATE DATABASE bugs_test CHARACTER SET = 'utf8';" + +echo -e "\n== Starting memcached" +/usr/bin/memcached -u memcached -d +sleep 3 + +echo -e "\n== Running checksetup" +perl checksetup.pl $BUGZILLA_ROOT/qa/config/checksetup_answers.txt +perl checksetup.pl $BUGZILLA_ROOT/qa/config/checksetup_answers.txt + +echo -e "\n== Generating bmo data" +perl $BUGZILLA_ROOT/docker/scripts/generate_bmo_data.pl + +echo -e "\n== Generating test data" +cd $BUGZILLA_ROOT/qa/config +perl generate_test_data.pl + +echo -e "\n== Starting web server" +sed -e "s?^#Perl?Perl?" --in-place /etc/httpd/conf.d/bugzilla.conf +/usr/sbin/httpd & +sleep 3 + +if [ "$TEST_SUITE" = "selenium" ]; then + export DISPLAY=:0 + + # Setup dbus for Firefox + dbus-uuidgen > /var/lib/dbus/machine-id + + echo -e "\n== Starting virtual frame buffer and vnc server" + Xvnc $DISPLAY -screen 0 1280x1024x16 -ac -SecurityTypes=None \ + -extension RANDR 2>&1 | tee /xvnc.log & + sleep 5 + + echo -e "\n== Starting Selenium server" + java -jar /selenium-server.jar -log /selenium.log > /dev/null 2>&1 & + sleep 5 + + # Set NO_TESTS=1 if just want selenium services + # but no tests actually executed. + [ $NO_TESTS ] && exit 0 + + cd $BUGZILLA_ROOT/qa/t + $BUILDBOT "Selenium" prove -f -v -I$BUGZILLA_ROOT/lib test_*.t + exit $? +fi + +if [ "$TEST_SUITE" = "webservices" ]; then + cd $BUGZILLA_ROOT/qa/t + $BUILDBOT "Webservices" prove -f -v -I$BUGZILLA_ROOT/lib webservice_*.t + exit $? +fi -- cgit v1.2.3-24-g4f1b