- echo "Running build script on $WIN_HOST..."
- wxdir=$WIN_BUILD/wxPython-src-$VERSION
- cmd=./build-windows
- ssh $WIN_HOST "cd $WIN_BUILD && $cmd $wxdir $WIN_BUILD $skipclean $VERSION $PYVER && rm $cmd"
-
- echo "Fetching the results..."
- scp "$WIN_HOST:$WIN_BUILD/wxPython*-win32*" $STAGING_DIR
- ssh $WIN_HOST "rm $WIN_BUILD/wxPython*-win32*"
-fi
-
-
-# ---------------------------------------------------------------------------
-# OSX build
-
-function DoOSXBuild {
- local host=$1
- local flavor=$2
-
- # test if the target machine is online
- if ping -q -c1 -w1 $host > /dev/null; then
- echo "-----------------------------------------------------------------"
- echo " The $host machine is online, OSX-$flavor build continuing..."
- echo "-----------------------------------------------------------------"
- else
- echo "-----------------------------------------------------------------"
- echo "The $host machine is offline, skipping the OSX-$flavor build."
- echo "-----------------------------------------------------------------"
- return 0
- fi
-
- echo "-=-=- Starting OSX-$flavor build on $host..."
-
- echo "Copying source files and build script..."
- ssh root@$host "mkdir -p $OSX_BUILD && rm -rf $OSX_BUILD/* || true"
- #ssh root@$host "mkdir -p $OSX_BUILD || true"
- scp $STAGING_DIR/wxPython-src-$VERSION.tar.gz \
- $STAGING_DIR/wxPython-docs-$VERSION.tar.gz \
- $STAGING_DIR/wxPython-demo-$VERSION.tar.gz \
- distrib/all/build-osx \
- root@$host:$OSX_BUILD
-
- echo "Running build script on $host..."
- wxdir=$OSX_BUILD/wxPython-src-$VERSION
- cmd=./build-osx
- ssh root@$host "cd $OSX_BUILD && $cmd $wxdir $OSX_BUILD $skipclean $VERSION $flavor $PYVER && rm $cmd"
-
- echo "Fetching the results..."
- scp "root@$host:$OSX_BUILD/wxPython*-osx*" $STAGING_DIR
- ssh root@$host "rm $OSX_BUILD/wxPython*-osx*"
-
-}
-
-
-if [ $skiposx != yes ]; then
-
- DoOSXBuild $OSX_HOST_panther panther
- DoOSXBuild $OSX_HOST_jaguar jaguar
-
-fi
-
-
-# ---------------------------------------------------------------------------
-# Linux build
-
-# The remote Linux builds are different than those above. The source
-# RPMs were already built in the source step, and so building the
-# binary RPMs is a very simple followup step. But then add to that
-# the fact that we need to build on more than one distro...
-
-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
- echo "-----------------------------------------------------------------"
- echo "The $host machine is offline, skipping the binary RPM build."
- echo "-----------------------------------------------------------------"
- return 0
- fi
-
- echo "Copying source files and build script..."
- ssh root@$host "mkdir -p $LINUX_BUILD && rm -rf $LINUX_BUILD/*"
- scp $STAGING_DIR/wxPython-src* $STAGING_DIR/wxPython.spec\
- distrib/all/build-linux \
- root@$host:$LINUX_BUILD
-
- echo "Running build script on $host..."
- cmd=./build-linux
- ssh root@$host "cd $LINUX_BUILD && ./build-linux $reltag $skipclean $VERSION $pyver"
+ # Build tasks. Anything that can be done in parallel (depends greatly
+ # on the nature of the build machines configurations...) is a separate
+ # task.
+
+ jaguarTask = Task(
+ Job("whopper.23",
+ "distrib/all/build-osx", [config.OSX_HOST_jaguar, "jaguar", "2.3"], env=config_env) )
+
+ pantherTask = Task(
+ [ Job("bigmac.23",
+ "distrib/all/build-osx", [config.OSX_HOST_panther, "panther", "2.3"], env=config_env),
+ Job("bigmac.24",
+ "distrib/all/build-osx", [config.OSX_HOST_panther, "panther", "2.4"], env=config_env)
+ ])
+
+ beastTask1 = Task(
+ [ Job("beast.23", "distrib/all/build-windows", ["2.3"], env=config_env),
+ Job("co-rh9.23", ["distrib/all/build-rpm", CFGFILE, "beast", "co-rh9", "rh9", "2.3"]),
+ Job("beast.24", "distrib/all/build-windows", ["2.4"], env=config_env),
+ Job("co-rh9.24", ["distrib/all/build-rpm", CFGFILE, "beast", "co-rh9", "rh9", "2.4"]),
+ ])
+
+ beastTask2 = Task(
+ [ Job("co-fc2.23", ["distrib/all/build-rpm", CFGFILE, "beast", "co-fc2", "fc2", "2.3"]),
+ #Job("co-mdk101.23", ["distrib/all/build-rpm", CFGFILE, "beast", "co-mdk101","mdk101","2.3"]),
+ Job("co-fc4.24", ["distrib/all/build-rpm", CFGFILE, "beast", "co-fc4", "fc4", "2.4"]),
+ #Job("co-fc2.24", ["distrib/all/build-rpm", CFGFILE, "beast", "co-fc2", "fc2", "2.4"]),
+ Job("co-mdk102.24", ["distrib/all/build-rpm", CFGFILE, "beast", "co-mdk102","mdk102","2.4"]),
+ ])
+
+## cyclopsTask = Task(
+## [ Job("co-mdk92.23", "distrib/all/build-rpm", ["cyclops", "co-mdk92", "mdk92", "2.3"], env=config_env),
+## Job("co-rh9.23", "distrib/all/build-rpm", ["cyclops", "co-rh9", "rh9", "2.3"], env=config_env),
+## Job("co-mdk92.24", "distrib/all/build-rpm", ["cyclops", "co-mdk92", "mdk92", "2.4"], env=config_env),
+## Job("co-rh9.24", "distrib/all/build-rpm", ["cyclops", "co-rh9", "rh9", "2.4"], env=config_env),
+## ])
+
+ buildTasks = [ jaguarTask,
+ pantherTask,
+ beastTask1,
+ beastTask2,
+## cyclopsTask,
+ ]
+
+ # Finalization. This is for things that must wait until all the
+ # builds are done, such as copying the installers someplace, sending
+ # emails, etc.
+ finalizationTask = Task( Job("", "distrib/all/build-finalize", env=config_env) )
+
+ return initialTask, buildTasks, finalizationTask
+
+
+#----------------------------------------------------------------------
+
+def usage():
+ print ""
+ print "Usage: build-all [command flags...]"
+ print ""
+ print "build types:"
+ print " dryrun Do the build, but don't copy anywhere (default)"
+ print " daily Do a daily build, copy to starship"
+ print " release Do a normal release (cantidate) build, copy to starship"
+ print ""
+ print "optional command flags:"
+ print " skipsource Don't build the source archives, use the ones"
+ print " already in the staging dir."
+ print " onlysource Exit after building the source and docs archives"
+ print " skipdocs Don't rebuild the docs"
+ print " skipwin Don't do the remote Windows build"
+ print " skiposx Don't do the remote OSX build"
+ print " skiplinux Don't do the remote Linux build"
+ print " skipclean Don't do the cleanup step on the remote builds"
+ print " skipupload Don't upload the builds to starship"
+ print ""
+ print " nocohost Don't start the coLinux sessions if they are"
+ print " not already online"
+ print ""