Merge bzr merge lp:~percona-toolkit-dev/percona-toolkit/better-jenkins-test

This commit is contained in:
Daniel Nichter
2012-06-30 09:40:43 -06:00
2 changed files with 87 additions and 16 deletions
+41 -16
View File
@@ -1,9 +1,10 @@
#!/bin/sh
######################################
# Source our alt_cmds.sh for _seq(). #
######################################
. lib/bash/alt_cmds.sh
# This script is used to do a test run on a Jenkins node. Jenkins jobs
# set env vars based on job params (like MYSQL and TEST_CMD) then execute
# this script which does the rest. When this script exists, the Jenkins
# job exists, so if some commands (like check-dev-env) fail, then the
# Jenkins job will fail too.
##############
# Set modes. #
@@ -20,17 +21,42 @@ util/check-dev-env
#####################################
# Install barebones MySQL binaries. #
#####################################
if ! [ -d "mysql-${MYSQL}-barebones" ]; then
wget -q http://hackmysql.com/mysql-${MYSQL}-barebones.tar.gz
tar xvfz mysql-${MYSQL}-barebones.tar.gz
if uname -a | grep x86_64 >/dev/null 2>&1; then
ARCH="64"
else
ARCH="32"
fi
MYSQL_BIN_DIR="$HOME/mysql-bin"
[ -d "$MYSQL_BIN_DIR" ] || mkdir "$MYSQL_BIN_DIR"
find_mysql_base_dir() {
find "$MYSQL_BIN_DIR" -name "mysql-$1*" -type d | tail -n 1
}
MYSQL_BASE_DIR="$(find_mysql_base_dir $MYSQL)"
if [ -z "$MYSQL_BASE_DIR" ]; then
(
cd $MYSQL_BIN_DIR
wget -q -O mysql.tar.gz http://hackmysql.com/barebones/mysql/$MYSQL/$ARCH
tar xvfz mysql.tar.gz
rm mysql.tar.gz
)
MYSQL_BASE_DIR="$(find_mysql_base_dir $MYSQL)"
fi
if [ -z "$("$MYSQL_BASE_DIR/bin/mysqld" -V)" ]; then
echo "$MYSQL_BASE_DIR/bin/mysqld does not execute" >&2
exit 1
fi
##########################
# Set required env vars. #
##########################
export PERCONA_TOOLKIT_BRANCH="$PWD"
export PERCONA_TOOLKIT_SANDBOX="$PWD/mysql-${MYSQL}-barebones"
export PATH="$PATH:/usr/sbin:$PWD/mysql-${MYSQL}-barebones/bin"
export PERCONA_TOOLKIT_SANDBOX="$MYSQL_BASE_DIR"
export PATH="$PATH:/usr/sbin:$MYSQL_BASE_DIR/bin"
#############################
# Check and start test env. #
@@ -55,13 +81,12 @@ fi
# Run the tests. #
##################
EXIT_STATUS=0
ITERATIONS="${ITERATIONS:-1}"
for iter in $(_seq $ITERATIONS); do
(
$TEST_CMD
)
EXIT_STATUS=$(($? | 0))
done
TEST_CMD="${TEST_CMD:-"prove -r t/"}"
(
$TEST_CMD
)
EXIT_STATUS=$(($? | 0))
#############
# Clean up. #
+46
View File
@@ -0,0 +1,46 @@
#!/bin/sh
# This script makes a barebones tarball from a full MySQL binary tarball.
# A full tarball is > 150M, but a barebones is usually < 40M. The barebones
# tarballs are fetched from hackmysql.com by sandbox/jenkins-test to create
# MySQL sandboxes for testing.
set -x
tarball="$1"
version=$(echo $tarball | awk -F'-' '{print $2}')
full_dir=${tarball%".tar.gz"}
tar xvfz $tarball \
"$full_dir/COPYING" \
"$full_dir/README" \
"$full_dir/share/errmsg*" \
"$full_dir/share/charset*" \
"$full_dir/share/english*" \
"$full_dir/share/mysql/errmsg*" \
"$full_dir/share/mysql/charset*" \
"$full_dir/share/mysql/english*" \
"$full_dir/bin/my_print_defaults" \
"$full_dir/bin/mysql" \
"$full_dir/bin/mysqld" \
"$full_dir/bin/mysqladmin" \
"$full_dir/bin/mysqlbinlog" \
"$full_dir/bin/mysqld" \
"$full_dir/bin/mysqld_safe" \
"$full_dir/bin/safe_mysqld"
echo "This tarball was created from $tarball. It contains only the files necessary for creating a Percona Toolkit sandbox test server." > $full_dir/README.barebones
file_info=$(file "$full_dir/bin/mysqld")
if file "$full_dir/bin/mysqld" | grep -q "x86_64"; then
arch="x86_64"
else
arch="i386"
fi
bare_dir="mysql-$version-$arch-barebones"
mv $full_dir $bare_dir
tar cvfz $bare_dir.tar.gz $bare_dir
rm -rf $bare_dir
exit