first stab at scripts to actually run the build

This commit is contained in:
Hans-Christoph Steiner 2008-04-06 04:08:54 +00:00
parent a0918ef02d
commit 057fbfe5b8
2 changed files with 159 additions and 0 deletions

View File

@ -0,0 +1,109 @@
#!/bin/sh
# this script is the first attempt to have an automated updater and builder
# the source dir where this script is
SCRIPT_DIR=`echo $0 | sed 's|\(.*\)/.*$|\1|'`
. $SCRIPT_DIR/auto-build-common
# the name of this script
SCRIPT=`echo $0| sed 's|.*/\(.*\)|\1|g'`
BUILD_DIR=.
case $SYSTEM in
linux)
BUILD_DIR=linux_make
echo "Configuring to use $BUILD_DIR on GNU/Linux"
;;
darwin)
BUILD_DIR=darwin_app
echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X"
;;
mingw*)
BUILD_DIR=win32_inno
echo "Configuring to use $BUILD_DIR on MinGW/Windows"
;;
cygwin*)
BUILD_DIR=win32_inno
echo "Configuring to use $BUILD_DIR on Cygwin/Windows"
;;
*)
echo "ERROR: Platform $SYSTEM not supported!"
exit
;;
esac
# convert into absolute path
cd `echo $0 | sed 's|\(.*\)/.*$|\1|'`/../..
auto_build_root_dir=`pwd`
echo "root: $auto_build_root_dir"
# let rsync handle the cleanup with --delete
case $SYSTEM in
mingw*)
/c/cygwin/bin/sh --login -c \
"rsync -a --delete rsync://128.238.56.50/arduino/arduino-trunk/ ${auto_build_root_dir}/"
;;
*)
rsync -a --delete rsync://128.238.56.50/arduino/arduino-trunk/ ${auto_build_root_dir}/
;;
esac
cd "${auto_build_root_dir}/build/$BUILD_DIR"
./dist.sh
exit
upload_build ()
{
platform_folder=$1
build_folder=$2
archive_format=$3
archive="${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format}"
echo "upload specs $1 $2 $3"
echo "Uploading $archive"
upload_filename=`ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|"`
case $SYSTEM in
mingw*)
if [ -e ${archive} ]; then
/c/cygwin/bin/sh --login -c \
"rsync -a ${archive} rsync://128.238.56.50/arduinoupload/${DATE}/${upload_filename}" && \
md5sum ${archive} > ${archive}.md5 && \
/c/cygwin/bin/sh --login -c \
"rsync -a ${archive}.md5 rsync://128.238.56.50/arduinoupload/${DATE}/${upload_filename}.md5" && \
echo SUCCESS
fi
;;
*)
if [ -e ${archive} ]; then
rsync -a ${archive} rsync://128.238.56.50/arduinoupload/${DATE}/${upload_filename} && \
md5sum ${archive} > ${archive}.md5 && \
rsync -a ${archive}.md5 rsync://128.238.56.50/arduinoupload/${DATE}/${upload_filename}.md5 && \
echo SUCCESS
fi
;;
esac
}
case $SYSTEM in
linux)
if [ -x /usr/bin/dpkg-deb ]; then
upload_build linux_make . deb
else
upload_build linux_make build tar.bz2
fi
;;
darwin)
upload_build darwin_app . dmg
;;
mingw*)
upload_build win32_inno Output exe
;;
cygwin*)
upload_build win32_inno Output exe
;;
esac

View File

@ -0,0 +1,50 @@
#!/bin/sh
cd /
# On Mac OS X, there are some handy things in Fink, but don't override the
# built-in tools
PATH="${PATH}:/sw/bin:/sw/sbin"
export PATH
# the source dir where this script is
SCRIPT_DIR=`echo $0 | sed 's|\(.*\)/.*$|\1|'`
. $SCRIPT_DIR/auto-build-common
# the name of this script
SCRIPT=`echo $0| sed 's|.*/\(.*\)|\1|g'`
run_build_script ()
{
distro=$1
LOGFILE=/home/arduino/logs/${DATE}_${TIME}_${SYSTEM}_${HOSTNAME}_${distro}_${SCRIPT}.txt
touch ${LOGFILE}
sh /home/arduino/auto-build/${distro}/build/auto-build/${distro}-auto-build >> $LOGFILE 2>&1
case $SYSTEM in
mingw*)
/c/cygwin/bin/sh --login -c \
"rsync -a ${LOGFILE} rsync://128.238.56.50/arduinoupload/${DATE}/logs/"
;;
*)
rsync -a ${LOGFILE} rsync://128.238.56.50/arduinoupload/${DATE}/logs/
;;
esac
# send status report if something failed
completion_test=`tail -1 ${LOGFILE}`
if [ "x${completion_test}" != "xSUCCESS" ]; then
if [ "x${RECIPIENT}" != "x" ]; then
SUBJECT="autobuild: $distro $HOSTNAME $DATE $TIME"
tail -20 ${LOGFILE} | mail -s "${SUBJECT}" ${RECIPIENT}
fi
fi
}
for dir in /home/arduino/auto-build/*; do
dirname=`echo $dir | sed 's|.*/\(.*\)|\1|'`
test -e $dir/build/auto-build/${dirname}-auto-build && \
run_build_script $dirname
done