1
1

Add some more scripts and information that is used in the OMPI project

infrastructure.

This commit was SVN r31358.
Этот коммит содержится в:
Jeff Squyres 2014-04-09 13:52:45 +00:00
родитель df311b82aa
Коммит 6d61f1edcd
5 изменённых файлов: 255 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,58 @@
When creating the github email hook thingy...
First, clone down the repo from github that you want:
cd /u/mpiteam/git
git clone ...
The rest of these instructions assume that you cloned into directory "foo".
Change "foo" as appropriate for your repo name.
Make a bare clone of your new clone:
git clone --bare foo foo.git
In the non-bare repo, add a remote named "email" that is the bare repo:
cd foo
git remote add email /u/mpiteam/git/foo.git
Now in the foo repo, edit the config and in the remote "origin" section, add
the following line if it's not already there:
emacs .git/config
# Add this line in the "origin" section:
fetch = +refs/heads/*:refs/remotes/origin/*
Still in that same config file, add a line in the remote "email" section:
push = +refs/remotes/origin/*:refs/heads/*
Now exit the editor and remove the tracking branch of the origin:
git branch -d -r origin/HEAD
IF YOU SCREW UP AND "push" to the email remote before deleting the origin/HEAD
tracking branch, then run the "git branch -d ..." and the following (both in
the original repo, not the bare repo):
git push email :refs/heads/HEAD
Copy the hooks/post-receive script from any of the other bare repos to the
hooks subdir in this bare repo (e.g., from
/u/mpiteam/git/hwloc.git/hooks/post-receive). Ensure that this script is
executable.
Edit the file named "description" in the bare repo and put a 1-word name of the
project in the file (this word will be used in the email subject).
Now in the bare repo, add the following "[hooks]" section -- MAKE SURE TO USE
THE CORRECT URL FOR YOUR GITHUB REPO, and set the email address properly:
[hooks]
emailprefix = "GIT: "
mailinglist = netloc-commits@open-mpi.org
diffopts = --stat --summary --find-copies-harder
emailmaxlines = 5000
showrev="t=%s; printf https://github.com/open-mpi/netloc/commit/$t; echo; echo; git show --stat --patch -C $t; echo"

13
contrib/infrastructure/README.txt Обычный файл
Просмотреть файл

@ -0,0 +1,13 @@
There are several files and scripts in this directory.
- Crontab for jaguar.crest.iu.edu (aka mtt.open-mpi.org, where much
nightly processing for the Open MPI project occurs).
- Crontab for lion.crest.iu.edu (aka www.open-mpi.org, which you can't
directly SSH login to from outside of iu.edu).
- Script used to send diff emails from github repos (because github
refuses to send diff emails). This script is fired from cron.
- README for how to setup diff emails for new github repos (i.e., how
to use the above script to send diff emails for each github repo).

Просмотреть файл

@ -0,0 +1,125 @@
#########################
# MPI Testing Tool (MTT)
# - Original plan
#
# Everyday
# - 23:00 - 1:00 Update MTT Statistics [Database]
# - 1:00 - 3:00 Update MTT Statistics [Contribution]
# - 3:00 - 3:05 Update Contrib Graph
# - 4:00 - 4:30 Maintain internal PostgreSQL stats (Day)
# - 4:30 - 8:30 Update Static MTT Visualization Extension (Disabled due to heavy load)
#
# Saturday
# - 1:00 - 12:00 Backup the MTT database
# - 14:30 - 18:30 Update Static MTT Visualization Extension
#
# Sunday
# - 4:00 - 4:30 Maintain internal PostgreSQL stats (Week)
# - 4:00 - 4:30 Maintain internal PostgreSQL stats (Month) [1st sunday only]
# - 5:00 - 5:30 Check for Integrity Violations (week)
#
#########################
#########################
# Update MTT Statistics [Database]
# - everyday at 11:00
# - runs in about 25 - 30 min
#########################
0 23 * * * /l/osl/www/mtt.open-mpi.org/cron/mtt-update-stats-db-only.pl
#########################
# Update MTT Statistics [Contribution]
# - everyday at 1 am
# - runs in about 2 hours
#########################
0 1 * * * /l/osl/www/mtt.open-mpi.org/cron/mtt-update-stats.pl
#########################
# Update Contrib Graphs
# - 3 am Everyday
# - Runs in < 1 min
# "-l" limits to just last year of data. (slightly faster to run)
#########################
0 3 * * * /l/osl/www/mtt.open-mpi.org/cron/create-contrib-graph.pl -l
30 3 * * * /l/osl/www/mtt.open-mpi.org/cron/create-contrib-graph.pl
#########################
# Maintain internal PostgreSQL stats (Week)
# - Sunday at 4 am (except when Monthly is running)
# - runs in about 30 min
# JJH: 11/7/2011 - Since Monthly disabled, run every week
#########################
##0 4 * * 0 if [ `date +\%d` -ge 8 ]; then /l/osl/www/mtt.open-mpi.org/cron/periodic-maintenance.pl -week 1> /dev/null 2> /dev/null; fi
0 4 * * 0 /l/osl/www/mtt.open-mpi.org/cron/periodic-maintenance.pl -week 1> /dev/null 2> /dev/null
#########################
# Maintain internal PostgreSQL stats (Year)
# - Dec. 1 at 4 am
# - runs in about 6 hours (?? Verify)
#########################
0 4 1 12 * /l/osl/www/mtt.open-mpi.org/cron/periodic-maintenance.pl -year 1> /dev/null 2> /dev/null
#########################
# Email Reports
# - Tues - Thursday at 9 am (Past 12 hours)
# - Tues - Thursday at 9 pm (Past 24 hours)
# - Monday at 9 am (Past 60 hours)
#########################
0 9 * * 2-4 /l/osl/www/mtt.open-mpi.org/cron/alerts.php -f /l/osl/www/mtt.open-mpi.org/cron/morning.ini 1> /dev/null 2> /dev/null
0 21 * * 2-4 /l/osl/www/mtt.open-mpi.org/cron/alerts.php -f /l/osl/www/mtt.open-mpi.org/cron/evening.ini 1> /dev/null 2> /dev/null
0 9 * * 1 /l/osl/www/mtt.open-mpi.org/cron/alerts.php -f /l/osl/www/mtt.open-mpi.org/cron/monday.ini 1> /dev/null 2> /dev/null
#######################################################################
# Build nightly tarballs
#######################################################################
0 21 * * * $HOME/scripts/netloc-nightly-tarball.sh </dev/null >/dev/null 2>&1
1 21 * * * $HOME/scripts/hwloc-nightly-tarball.sh </dev/null >/dev/null 2>&1
5 21 * * * $HOME/scripts/openmpi-nightly-tarball.sh </dev/null >/dev/null 2>&1
#######################################################################
# Update web sites
#######################################################################
*/15 * * * * $HOME/scripts/openmpi-update-www.open-mpi.org.sh < /dev/null > $HOME/tmp/git-www-ompi.log 2>&1
*/10 * * * * $HOME/scripts/forum-update-meetings.mpi-forum.org.sh < /dev/null > $HOME/tmp/svn-up-forum.log 2>&1
#######################################################################
# Github does not send diff emails, so send our own
#######################################################################
# The script takes a list of local repo directories.
*/5 * * * * /u/mpiteam/scripts/github-send-commit-mails.pl /u/mpiteam/git/hwloc /u/mpiteam/git/hwloc-debian /u/mpiteam/git/netloc /u/mpiteam/git/docs /u/mpiteam/git/ompi-www
#=====================================================================
#=====================================================================
# Outdated / unused scripts
#=====================================================================
#=====================================================================
#########################
# Maintain internal PostgreSQL stats (Day)
# - every weekday at 4 am
# - runs in about 10 - 20 min
#
# JJH: 12/20/2011 Disable this to try to help with memory issues in the db
#########################
#0 4 * * 1-5 /l/osl/www/mtt.open-mpi.org/cron/periodic-maintenance.pl -day 1> /dev/null 2> /dev/null
#########################
# Maintain internal PostgreSQL stats (Month)
# - 1st Sunday of the Month at 4 am
# - runs in about 21 hours (not 20 min)
# JJH: 11/7/2011 - Disabled due to long runtime causing submission errors
#########################
#0 4 * * 0 if [ `date +\%d` -lt 8 ]; then /l/osl/www/mtt.open-mpi.org/cron/periodic-maintenance.pl -month 1> /dev/null 2> /dev/null; fi
#30 20 * * * $HOME/scripts/openmpi-nightly-tmpbranch-tarball.sh </dev/null >/dev/null 2>&1
#0 0 * * * $HOME/scripts/openmpi-ft-cr-tarball.sh </dev/null >/dev/null 2>&1
# Don't build any more LAM/MPI tarballs!
#0 4 * * * $HOME/scripts/lammpi-nightly-tarball.sh </dev/null >/dev/null 2>&1

Просмотреть файл

@ -0,0 +1,17 @@
#########################
# Update the OSL FT webpage
#
# Everyday @ 1:00 am
#
0 1 * * * (cd /l/osl/www/www.osl.iu.edu/research/ft && svn up ) 1> /dev/null 2> /dev/null
#########################
##########################
# Official Open MPI repo mirrors
##########################
#
#
# Update the ompi hg repository
#
10,25,40,55 * * * * /home/ompi-hg/update-hg-svn.sh

42
contrib/infrastructure/github-send-commit-mails.pl Исполняемый файл
Просмотреть файл

@ -0,0 +1,42 @@
#!/usr/bin/env perl
use strict;
use Cwd;
die "Must specify location of source git repo"
if ($#ARGV < 0);
sub doit {
my ($cmd, $repo) = @_;
my $rc;
my $outfile = "/tmp/github-send-email-tmp.$$";
unlink($outfile);
$rc = system("$cmd >$outfile 2>&1");
if (0 != $rc) {
print "Command failed:
Command: $cmd
Repo: $repo
Output:\n";
open(IN, $outfile);
print $_
while (<IN>);
close(IN);
die "Aborting";
}
unlink($outfile);
}
foreach my $src_repo (@ARGV) {
die "Specified location of source git repo is invalid"
if (! -d $src_repo);
chdir($src_repo);
die "Could not chdir to $src_repo"
if (getcwd() != $src_repo);
doit("/u/mpiteam/git/local/bin/git fetch", $src_repo);
doit("/u/mpiteam/git/local/bin/git push email", $src_repo);
}