mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-13 10:29:35 +01:00
first stab at scripts to actually run the build
This commit is contained in:
parent
a0918ef02d
commit
057fbfe5b8
109
build/auto-build/arduino-trunk-auto-build
Executable file
109
build/auto-build/arduino-trunk-auto-build
Executable 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
|
||||
|
50
build/auto-build/run-auto-builds
Executable file
50
build/auto-build/run-auto-builds
Executable 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
|
Loading…
x
Reference in New Issue
Block a user