diff --git a/contrib/nightly/crontab.txt b/contrib/nightly/crontab.txt new file mode 100644 index 0000000000..46a748247e --- /dev/null +++ b/contrib/nightly/crontab.txt @@ -0,0 +1,6 @@ +0 21 * * * $HOME/scripts/openmpi-nightly-tarball.sh /dev/null 2>&1 +1 21 * * * $HOME/scripts/hwloc-nightly-tarball.sh /dev/null 2>&1 +#30 20 * * * $HOME/scripts/openmpi-nightly-tmpbranch-tarball.sh /dev/null 2>&1 +0 4 * * * $HOME/scripts/lammpi-nightly-tarball.sh /dev/null 2>&1 +#0 0 * * * $HOME/scripts/openmpi-ft-cr-tarball.sh /dev/null 2>&1 +30 * * * * $HOME/scripts/openmpi-update-www.open-mpi.org.sh < /dev/null > $HOME/tmp/svn-up-ompi.log 2>&1 diff --git a/contrib/nightly/openmpi-ft-cr-tarball.sh b/contrib/nightly/openmpi-ft-cr-tarball.sh new file mode 100755 index 0000000000..ccfd18bc3b --- /dev/null +++ b/contrib/nightly/openmpi-ft-cr-tarball.sh @@ -0,0 +1,77 @@ +#!/bin/sh + +##### +# +# Configuration options +# +##### + +# e-mail address to send results to +results_addr=jjhursey@open-mpi.org + +# svn repository uri +code_uri=http://svn.open-mpi.org/svn/ompi + +# where to put built tarballs +#outputroot=/l/osl/www/www.open-mpi.org/nightly +outputroot=/home/mpiteam/openmpi/testing + +# where to find the build script +script_uri=${code_uri}/trunk/contrib/nightly/create_tarball.sh + +# The tarballs to make +#if [ $# -eq 0 ] ; then + dirs="tmp/jjhursey-ft-cr-stable" + ver=trunk +#else +# dirs=$@ +# ver=trunk +#fi + +# Build root - scratch space +build_root=/home/mpiteam/openmpi/testing-tarball-build-root + +export PATH=$HOME/local/bin:$PATH +export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH + +##### +# +# Actually do stuff +# +##### + +# load the modules configuration +#JJH File No longer exists: . /etc/profile.d/00-modules.sh +. /etc/profile.d/modules.sh +module use ~/modules +module load sowing + +# get our nightly build script +mkdir -p $build_root +cd $build_root +script=`basename $script_uri` +wget --quiet --no-check-certificate --tries=10 $script_uri -O $script +if test ! $? -eq 0 ; then + echo "wget of Open MPI nightly tarball create script failed." + if test -f $script ; then + echo "Using older version of $script for this run." + else + echo "No build script available. Aborting." + exit 1 + fi +fi +chmod +x $script + +# Loop making them +for dir in $dirs; do +# ver=`basename $dir` + + module load "autotools/ompi-$ver" + + ./$script \ + $build_root/ft-cr-${ver} \ + $results_addr \ + $code_uri/$dir \ + $outputroot/ft-cr-$ver >/dev/null 2>&1 + module unload "autotools" +done diff --git a/contrib/nightly/openmpi-nightly-tarball.sh b/contrib/nightly/openmpi-nightly-tarball.sh new file mode 100755 index 0000000000..636549a7b0 --- /dev/null +++ b/contrib/nightly/openmpi-nightly-tarball.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +##### +# +# Configuration options +# +##### + +# e-mail address to send results to +results_addr=testing@open-mpi.org + +# svn repository uri +code_uri=http://svn.open-mpi.org/svn/ompi + +# where to put built tarballs +outputroot=/l/osl/www/www.open-mpi.org/nightly + +# where to find the build script +create_script=/contrib/nightly/create_tarball.sh + +# helper scripts dir +script_dir=/u/mpiteam/scripts + +# The tarballs to make +if [ $# -eq 0 ] ; then + # We're no longer ever checking the 1.0 - 1.3 branches anymore + dirs="/branches/v1.4 /trunk /branches/v1.5" +else + dirs=$@ +fi + +# Build root - scratch space +build_root=/home/mpiteam/openmpi/nightly-tarball-build-root + +export PATH=$HOME/local/bin:$PATH +export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH + +##### +# +# Actually do stuff +# +##### + +script=`basename $create_script` + +# load the modules configuration +. /etc/profile.d/modules.sh +module use ~/modules + +# get our nightly build script +mkdir -p $build_root +cd $build_root + +# Loop making the tarballs +module unload autotools +for dir in $dirs; do + ver=`basename $dir` + + module load "autotools/ompi-$ver" + + script_uri="$code_uri$dir/$create_script" + script_exec="$build_root/$ver/$script" + echo "=== Getting script from: $script_uri" + wget --quiet --no-check-certificate --tries=10 $script_uri -O "$script_exec" + if test ! $? -eq 0 ; then + echo "wget of Open MPI nightly $ver tarball create script failed." + exit 1 + fi + + echo "=== Running script..." + chmod +x "$script_exec" + "$script_exec" \ + $build_root/$ver \ + $results_addr \ + $code_uri/$dir \ + $outputroot/$ver + module unload autotools + echo "=== Done running script" + + # Failed builds are not removed. But if a human forgets to come + # in here and clean up the old failed builds, we can accumulate + # many over time. So remove any old failed bbuilds that are over + # 4 weeks old. + ${script_dir}/remove-old.pl 28 $build_root/$ver +done diff --git a/contrib/nightly/openmpi-nightly-test-build.sh b/contrib/nightly/openmpi-nightly-test-build.sh new file mode 100755 index 0000000000..ef4957035b --- /dev/null +++ b/contrib/nightly/openmpi-nightly-test-build.sh @@ -0,0 +1,33 @@ +: +buildroot=/home/jsquyres/openmpi +installfile="$buildroot/nightly/`hostname`-installs.txt" +addr=jsquyres@open-mpi.org +#addr=testing@open-mpi.org + +export PATH=$buildroot/local/bin:$PATH + +versions="trunk v1.0" + +for ver in $versions; do + $buildroot/build_tarball.pl \ + --scratch $buildroot/nightly/$ver \ + --email $addr \ + --url http://www.open-mpi.org/nightly/$ver/ \ + --config $buildroot/$ver-config.txt \ + --leave-install $installfile \ + --make "" \ + --nocheck + +# if test -s $installfile; then +# dirs=`grep debug $installfile` +# args= +# for d in $dirs; do +# args="--prefix $d $args" +# done +# +# $buildroot/illegal_symbols_report.pl $args --email $addr --delete +# rm -f $installfile +# fi +done +exit 0 + diff --git a/contrib/nightly/openmpi-nightly-tmpbranch-tarball.sh b/contrib/nightly/openmpi-nightly-tmpbranch-tarball.sh new file mode 100755 index 0000000000..02dbd59c43 --- /dev/null +++ b/contrib/nightly/openmpi-nightly-tmpbranch-tarball.sh @@ -0,0 +1,77 @@ +#!/bin/sh + +##### +# +# Configuration options +# +##### + +# e-mail address to send results to +results_addr=testing@open-mpi.org +#results_addr=timattox@open-mpi.org + +# svn repository uri +code_uri=http://svn.open-mpi.org/svn/ompi + +# where to put built tarballs +outputroot=/l/osl/www/www.open-mpi.org/nightly + +# where to find the build script +script_uri=${code_uri}/trunk/contrib/nightly/create_tarball.sh + +# The tarballs to make +#if [ $# -eq 0 ] ; then + dirs="tmp/rhc-step2b" + ver=trunk +#else +# dirs=$@ +# ver=trunk +#fi + +# Build root - scratch space +build_root=/home/mpiteam/openmpi/nightly-tarball-build-root + +export PATH=$HOME/local/bin:$PATH +export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH + +##### +# +# Actually do stuff +# +##### + +# load the modules configuration +#JJH File No longer exists: . /etc/profile.d/00-modules.sh +. /etc/profile.d/modules.sh +module use ~/modules +module load sowing + +# get our nightly build script +mkdir -p $build_root +cd $build_root +script=`basename $script_uri` +wget --quiet --no-check-certificate --tries=10 $script_uri -O $script +if test ! $? -eq 0 ; then + echo "wget of Open MPI nightly tarball create script failed." + if test -f $script ; then + echo "Using older version of $script for this run." + else + echo "No build script available. Aborting." + exit 1 + fi +fi +chmod +x $script + +# Loop making them +for dir in $dirs; do +# ver=`basename $dir` + + module load "autotools/ompi-$ver" + + ./$script \ + $build_root/rhc-step2b \ + $results_addr \ + $code_uri/$dir \ + $outputroot/rhc-step2b >/dev/null 2>&1 + module unload "autotools" +done diff --git a/contrib/nightly/openmpi-release.sh b/contrib/nightly/openmpi-release.sh new file mode 100755 index 0000000000..1b278e837a --- /dev/null +++ b/contrib/nightly/openmpi-release.sh @@ -0,0 +1,46 @@ +#!/bin/sh -x + +# The tarballs to make +#dirs="/branches/v1.2 /branches/v1.1 /branches/v1.0 /trunk" + +# The tarballs to make +if [ $# -eq 0 ] ; then + dirs="branches/v1.5" +else + dirs=$@ +fi + +# Build root - scratch space +build_root=/home/mpiteam/openmpi/release/ + +# Script to execute +script=contrib/dist/make_dist_tarball + +export PATH=$HOME/local/bin:$PATH +export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH + +##### +# +# Actually do stuff +# +##### + +# load the modules configuration +#JJH File No longer exists: . /etc/profile.d/00-modules.sh +. /etc/profile.d/modules.sh +module use ~/modules +module load sowing + +# move to the directory +# Loop making them +for dir in $dirs; do + ver=`basename $dir` + + cd $build_root/$ver + + module load "autotools/ompi-$ver" + + ./$script $@ >dist.out 2>&1 + + module unload "autotools" +done diff --git a/contrib/nightly/openmpi-test-tarball.sh b/contrib/nightly/openmpi-test-tarball.sh new file mode 100755 index 0000000000..ae1a65ce82 --- /dev/null +++ b/contrib/nightly/openmpi-test-tarball.sh @@ -0,0 +1,75 @@ +#!/bin/sh + +##### +# +# Configuration options +# +##### + +# e-mail address to send results to +results_addr=timattox@open-mpi.org + +# svn repository uri +code_uri=http://svn.open-mpi.org/svn/ompi + +# where to put built tarballs +#outputroot=/l/osl/www/www.open-mpi.org/nightly +outputroot=/home/mpiteam/openmpi/testing + +# where to find the build script +script_uri=${code_uri}/trunk/contrib/nightly/create_tarball.sh + +# The tarballs to make +if [ $# -eq 0 ] ; then + dirs="branches/v1.3" +else + dirs=$@ +fi + +# Build root - scratch space +build_root=/home/mpiteam/openmpi/testing-tarball-build-root + +export PATH=$HOME/local/bin:$PATH +export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH + +##### +# +# Actually do stuff +# +##### + +# load the modules configuration +#JJH File No longer exists: . /etc/profile.d/00-modules.sh +. /etc/profile.d/modules.sh +module use ~/modules +module load sowing + +# get our nightly build script +mkdir -p $build_root +cd $build_root +script=`basename $script_uri` +wget --quiet --no-check-certificate --tries=10 $script_uri -O $script +if test ! $? -eq 0 ; then + echo "wget of Open MPI nightly tarball create script failed." + if test -f $script ; then + echo "Using older version of $script for this run." + else + echo "No build script available. Aborting." + exit 1 + fi +fi +chmod +x $script + +# Loop making them +for dir in $dirs; do + ver=`basename $dir` + + module load "autotools/ompi-$ver" + + ./$script \ + $build_root/$ver \ + $results_addr \ + $code_uri/$dir \ + $outputroot/$ver >/dev/null 2>&1 + module unload "autotools" +done diff --git a/contrib/nightly/openmpi-update-www.open-mpi.org.sh b/contrib/nightly/openmpi-update-www.open-mpi.org.sh new file mode 100755 index 0000000000..89b39833cf --- /dev/null +++ b/contrib/nightly/openmpi-update-www.open-mpi.org.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +cd /l/osl/www/www.open-mpi.org + +# Absolutely ensure that we have a umask of 2 so that others can +# run "svn up" in this tree, too +umask 2 + +svn up + +date >> /tmp/bogus-mpiteam diff --git a/contrib/nightly/remove-old.pl b/contrib/nightly/remove-old.pl new file mode 100755 index 0000000000..2129732061 --- /dev/null +++ b/contrib/nightly/remove-old.pl @@ -0,0 +1,52 @@ +#!/usr/bin/env perl + +use strict; +use POSIX qw(strftime); + +my $happy = 1; + +my $savedays = $ARGV[0]; +my $dir = $ARGV[1]; + +$happy = 0 + if ($savedays <= 0 || ! -d $dir); +die "Must specify number of days and a directory" + if (!$happy); + +#------------------------------------------------------------------ + +# Read in all the dir entries +opendir(DIR, $dir) || die "Cannot open $dir"; +my @files = readdir(DIR); +closedir(DIR); + +# How many days to keep? +my $t = time() - ($savedays * 60 * 60 * 24); +print "Deleting anything before: " . strftime("%D", localtime($t)) . "\n"; +my $to_delete; + +# Check everything in the dir; if is a dir, is not . or .., and is +# older than the save date, keep it for deleting later. +foreach my $file (@files) { + if (-d "$dir/$file" && $file ne "." && $file ne "..") { + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = stat("$dir/$file"); + my $str = "SAVE"; + if ($mtime < $t) { + $to_delete = "$to_delete $dir/$file"; + $str = "DELETE"; + } + print "Found dir ($str): $file (mtime: " . strftime("%D", localtime($mtime)) . ")\n"; + } +} + +# If we found anything to delete, do so. +if ($to_delete ne "") { + print "Deleting: $to_delete\n"; + system("chmod -R u=rwx $to_delete"); + system("rm -rf $to_delete"); + } else { + print "Nothing to delete!\n"; +} + +exit(0); diff --git a/contrib/nightly/check_devel_headers.pl b/contrib/nightly/reports/check_devel_headers.pl similarity index 100% rename from contrib/nightly/check_devel_headers.pl rename to contrib/nightly/reports/check_devel_headers.pl diff --git a/contrib/nightly/illegal_symbols_report.pl b/contrib/nightly/reports/illegal_symbols_report.pl similarity index 100% rename from contrib/nightly/illegal_symbols_report.pl rename to contrib/nightly/reports/illegal_symbols_report.pl