The build can now start RPM builds on more than one linux target,

currently set up to do RH9 and FC2.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-08-04 22:27:18 +00:00
parent 5193b348e8
commit afbe4a5524
2 changed files with 93 additions and 46 deletions

View File

@@ -26,8 +26,7 @@ OSX_HOST=bigmac
OSX_BUILD=/tmp/BUILD OSX_BUILD=/tmp/BUILD
# Alsmost the same... See below # Alsmost the same... See below for hosts and other info
LINUX_HOST=rh9
LINUX_BUILD=/tmp/BUILD LINUX_BUILD=/tmp/BUILD
@@ -236,48 +235,48 @@ fi
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Linux build # Linux build
# This build is optional, check if the target machine is up and # The remote Linux builds are different than those above. The source
# running # RPMs were already built in the source step, and so building the
if [ $skiplinux != yes ]; then # binary RPMs is a very simple followup step. Add to that the fact
if ping -q -c1 -w1 $LINUX_HOST > /dev/null; then # that we need to build on more than one distro...
# the ping succeeded
skiplinux=no function DoLinuxBuild {
local host=$1
local reltag=$2
shift;shift
local pyver=$@
# test if the target machine is online
if ping -q -c1 -w1 $host > /dev/null; then
echo "-----------------------------------------------------------------"
echo " The $host machine is online, build continuing..."
echo "-----------------------------------------------------------------"
else else
# the ping failed, skip the build
skiplinux=yes
echo "-----------------------------------------------------------------" echo "-----------------------------------------------------------------"
echo "The $LINUX_HOST machine is offline, skipping the binary RPM build." echo "The $host machine is offline, skipping the binary RPM build."
echo "-----------------------------------------------------------------" echo "-----------------------------------------------------------------"
return 0
fi fi
fi
if [ $skiplinux != yes ]; then
echo "-=-=- Starting Linux build..."
# The remote linux build is a bit different than the others. The
# SRPMs will have already been built in the initial source
# building steps, the only thing that the remote build needs to
# do is an "rpmbuild --rebuild" for each package. So we'll just
# copy the build script over and execute it, there is no need to
# unpack the tarball and most of the other steps...
echo "Copying source files and build script..." echo "Copying source files and build script..."
ssh root@$LINUX_HOST "mkdir -p $LINUX_BUILD && rm -rf $LINUX_BUILD/*" ssh root@$host "mkdir -p $LINUX_BUILD && rm -rf $LINUX_BUILD/*"
scp $STAGING_DIR/wxPython*.src.rpm \ scp $STAGING_DIR/wxPython*.src.rpm \
distrib/all/build-linux \ distrib/all/build-linux \
root@$LINUX_HOST:$LINUX_BUILD root@$host:$LINUX_BUILD
echo "Running build script on $LINUX_HOST..." echo "Running build script on $host..."
cmd=./build-linux cmd=./build-linux
ssh root@$LINUX_HOST "cd $LINUX_BUILD && $cmd $LINUX_BUILD $skipclean $VERSION $PYVER" ssh root@$host "cd $LINUX_BUILD && ./build-linux $reltag $skipclean $VERSION $pyver"
echo "Fetching the results..." echo "Fetching the results..."
scp root@$LINUX_HOST:$LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm $STAGING_DIR scp "root@$host:$LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm" $STAGING_DIR
ssh root@$LINUX_HOST "rm $LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm" ssh root@$host "rm $LINUX_BUILD/wxPythonGTK*.i[0-9]86.rpm"
fi
}
DoLinuxBuild co-rh9 RH9 $PYVER
DoLinuxBuild co-fc2 FC2 2.3
@@ -309,7 +308,7 @@ if [ $KIND = daily ]; then
# TODO: something to remove old builds from starship, keeping # TODO: something to remove old builds from starship, keeping
# only N days worth # only N days worth
# TODO: Send email to wxPython-dev? # Send email to wxPython-dev
DATE=`date` DATE=`date`
TO=wxPython-dev@lists.wxwidgets.org TO=wxPython-dev@lists.wxwidgets.org
@@ -353,6 +352,29 @@ if [ $KIND = release ]; then
rm $STAGING_DIR/* rm $STAGING_DIR/*
rmdir $STAGING_DIR rmdir $STAGING_DIR
# Send email to wxPython-dev
DATE=`date`
TO=wxPython-dev@lists.wxwidgets.org
cat <<EOF | /usr/sbin/sendmail $TO
From: R'bot <rbot@wxpython.org>
To: $TO
Subject: New release candidate build uploaded
Date: $DATE
Hi,
A new RC build of wxPython has been uploaded to starship.
Version: $VERSION
Pythons: $PYVER
URL: http://starship.python.net/crew/robind/wxPython/preview/$VERSION
Have fun!
R'bot
EOF
echo "Finished at " `date` echo "Finished at " `date`
exit 0 exit 0
fi fi

View File

@@ -23,36 +23,61 @@ if [ $# -lt 4]; then
exit 1 exit 1
fi fi
DESTDIR=$1 RELEASE=$1
SKIPCLEAN=$2 SKIPCLEAN=$2
VERSION=$3 VERSION=$3
shift;shift;shift shift;shift;shift
PYVER=$@ PYVER=$@
# Since this is probably a VMWare guest, make sure that the date and rpmtop=_rpm_top
# time are correct
ntpdate gate.alldunn.com function DoRPMBuild {
echo "*** Setting up RPM build dirs"
for dir in SPECS BUILD RPMS SRPMS tmp; do
if [ ! -d $rpmtop/$dir ]; then
mkdir -p $rpmtop/$dir
fi
done
if [ ! -e $rpmtop/SOURCES ]; then
ln -s $PWD $rpmtop/SOURCES
fi
rpmbuild --define "_topdir $PWD/$rpmtop" \
--define "_tmppath $PWD/$rpmtop/tmp" \
--define "release $RELEASE" \
$@
if [ $? != 0 ]; then
return $?
fi
echo "*** Moving RPMs to ."
find $rpmtop -name "*.rpm"
mv -f `find $rpmtop -name "*.rpm"` .
echo "*** Cleaning up $rpmtop"
rm -rf $rpmtop
}
cd $DESTDIR
for ver in $PYVER; do for ver in $PYVER; do
echo "Building the RPMs for Python $ver..." echo "Building the RPMs for Python $ver..."
myrpmbuild --rebuild wxPythonGTK-py$ver-$VERSION-1.src.rpm for port in GTK GTK2; do
myrpmbuild --rebuild wxPythonGTK2-py$ver-$VERSION-1.src.rpm rpm2cpio wxPython$port-py$ver-$VERSION-1.src.rpm | \
cpio --extract -R root.
DoRPMBuild -ba wxPython$port.spec
done
done done
#echo "Copying RPMs to $DESTDIR..."
#cp wxPythonGTK*.i[0-9]86.rpm $DESTDIR
#cd $DESTDIR
if [ $SKIPCLEAN != yes ]; then if [ $SKIPCLEAN != yes ]; then
echo "Cleaning up..." echo "Cleaning up..."
for ver in $PYVER; do for ver in $PYVER; do
rm wxPythonGTK-py$ver-$VERSION-1.src.rpm rm wxPythonGTK-py$ver-$VERSION-*.src.rpm
rm wxPythonGTK2-py$ver-$VERSION-*.src.rpm
done done
rm *.spec *.tar.gz
fi fi
echo "-=-=-=- Goodbye! -=-=-=-" echo "-=-=-=- Goodbye! -=-=-=-"