2004-04-09 04:27:28 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
2004-04-09 23:56:23 +00:00
|
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
|
2005-07-21 00:52:22 +00:00
|
|
|
. $HOME/.profile
|
2005-07-28 01:17:38 +00:00
|
|
|
cd $HOME
|
2005-07-21 00:52:22 +00:00
|
|
|
|
2004-04-10 18:29:46 +00:00
|
|
|
CMD=$1
|
|
|
|
|
2004-07-18 01:22:49 +00:00
|
|
|
[ "$1" = "" ] && echo && echo "You must specify a checkout or update!" && echo && exit 1
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2005-07-20 14:33:41 +00:00
|
|
|
FROM=continuum@maven.zones.apache.org
|
2005-06-03 05:59:46 +00:00
|
|
|
TO=dev@maven.apache.org
|
2004-04-11 03:27:04 +00:00
|
|
|
DATE=`date`
|
2005-06-03 05:59:46 +00:00
|
|
|
|
|
|
|
PID=$$
|
|
|
|
RUNNING=`ps -ef | grep ci.sh | grep -v 'sh -c' | grep -v grep | grep -v $PID`
|
|
|
|
if [ ! -z "$RUNNING" ]; then
|
2005-07-28 01:17:38 +00:00
|
|
|
if [ "$CMD" = "checkout" ]; then
|
|
|
|
echo "From: $FROM" > running_log
|
|
|
|
echo "To: $TO" >> running_log
|
|
|
|
echo "Subject: [maven2 build - SKIPPED - $CMD] $DATE" >>running_log
|
|
|
|
echo "" >> running_log
|
|
|
|
echo "ci.sh already running... exiting" >>running_log
|
|
|
|
echo "$RUNNING" >>running_log
|
|
|
|
/usr/sbin/sendmail -t < running_log
|
|
|
|
fi
|
2005-06-03 05:59:46 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
HOME_DIR=`pwd`
|
2005-07-28 01:17:38 +00:00
|
|
|
DIR=$HOME/m2-build
|
2005-07-20 15:04:26 +00:00
|
|
|
REPO=$HOME_DIR/maven-repo-local
|
2004-04-10 18:29:46 +00:00
|
|
|
SCM_LOG=scm.log
|
2004-09-20 05:13:19 +00:00
|
|
|
TIMESTAMP=`date +%Y%m%d.%H%M%S`
|
2005-07-20 14:33:41 +00:00
|
|
|
WWW=$HOME/public_html
|
|
|
|
DEPLOY_DIR=$WWW/builds
|
|
|
|
DEPLOY_SITE=http://maven.zones.apache.org/~maven/builds
|
2004-09-19 01:18:12 +00:00
|
|
|
DIST=m2-${TIMESTAMP}.tar.gz
|
2005-07-20 14:33:41 +00:00
|
|
|
SVN=svn
|
2004-04-09 14:11:57 +00:00
|
|
|
|
2005-07-20 14:33:41 +00:00
|
|
|
M2_HOME=$HOME/m2
|
|
|
|
export M2_HOME
|
|
|
|
PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
|
2005-07-20 14:44:44 +00:00
|
|
|
export PATH
|
|
|
|
|
2005-07-20 14:33:41 +00:00
|
|
|
MESSAGE_DIR=$WWW/logs
|
|
|
|
MESSAGE_NAME=m2-build-log-${TIMESTAMP}.txt
|
|
|
|
MESSAGE=${MESSAGE_DIR}/${MESSAGE_NAME}
|
|
|
|
|
|
|
|
mkdir -p $DEPLOY_DIR
|
|
|
|
mkdir -p $MESSAGE_DIR
|
2004-09-02 13:14:47 +00:00
|
|
|
|
2004-07-28 06:10:48 +00:00
|
|
|
# ----------------------------------------------------------------------------------
|
2004-04-09 14:11:57 +00:00
|
|
|
|
|
|
|
# Wipe out the working directory and the repository and start entirely
|
|
|
|
# from scratch.
|
2004-04-09 04:27:28 +00:00
|
|
|
|
2004-04-09 14:11:57 +00:00
|
|
|
# ----------------------------------------------------------------------------------
|
|
|
|
|
2005-04-13 11:28:50 +00:00
|
|
|
BUILD_REQUIRED=false
|
|
|
|
if [ -f $HOME_DIR/build_required ]; then
|
|
|
|
BUILD_REQUIRED=`cat $HOME_DIR/build_required`
|
|
|
|
fi
|
|
|
|
|
2005-07-28 01:17:38 +00:00
|
|
|
if [ ! -d $DIR/maven-components ]; then
|
|
|
|
CMD="checkout"
|
|
|
|
fi
|
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
(
|
|
|
|
if [ "$CMD" = "checkout" ]
|
|
|
|
then
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
rm -rf $DIR > /dev/null 2>&1
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
mkdir $DIR
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
rm -rf $REPO > /dev/null 2>&1
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
mkdir $REPO
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo "Performing a clean check out of maven-components ..."
|
|
|
|
echo
|
|
|
|
|
|
|
|
(
|
|
|
|
cd $DIR
|
|
|
|
|
2005-04-21 17:28:26 +00:00
|
|
|
$SVN co http://svn.apache.org/repos/asf/maven/components/trunk maven-components > $HOME_DIR/$SCM_LOG 2>&1
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
echo "true" > $HOME_DIR/build_required
|
|
|
|
)
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
else
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
echo
|
|
|
|
echo "Performing an update of maven-components ..."
|
|
|
|
echo
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
(
|
|
|
|
cd $DIR/maven-components
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2005-04-21 17:28:26 +00:00
|
|
|
$SVN update > $HOME_DIR/$SCM_LOG 2>&1
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2005-04-21 13:35:28 +00:00
|
|
|
grep "^[PUAD] " $HOME_DIR/$SCM_LOG > /dev/null 2>&1
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
if [ "$?" = "1" ]
|
|
|
|
then
|
|
|
|
|
2005-04-13 11:28:50 +00:00
|
|
|
echo $BUILD_REQUIRED > $HOME_DIR/build_required
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 18:42:24 +00:00
|
|
|
else
|
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
echo "true" > $HOME_DIR/build_required
|
2004-04-10 18:42:24 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
fi
|
2004-04-09 04:27:28 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
)
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2004-04-10 19:01:31 +00:00
|
|
|
fi
|
2004-04-10 18:29:46 +00:00
|
|
|
|
|
|
|
BUILD_REQUIRED=`cat $HOME_DIR/build_required`
|
|
|
|
|
|
|
|
if [ "$BUILD_REQUIRED" = "true" ]
|
|
|
|
then
|
|
|
|
|
2004-04-10 18:48:13 +00:00
|
|
|
echo "Updates occured, build required ..."
|
|
|
|
echo
|
2005-04-21 13:35:28 +00:00
|
|
|
grep "^[PUAD] " $HOME_DIR/$SCM_LOG
|
2004-04-10 18:48:13 +00:00
|
|
|
echo
|
|
|
|
|
2004-04-10 18:29:46 +00:00
|
|
|
(
|
2004-07-27 17:37:07 +00:00
|
|
|
cd $DIR/maven-components
|
2004-04-10 18:29:46 +00:00
|
|
|
|
2005-07-20 15:04:26 +00:00
|
|
|
sh m2-bootstrap-all.sh -Dmaven.repo.local="$REPO" -Dmaven.home="$M2_HOME" --update-snapshots
|
2004-09-19 01:18:12 +00:00
|
|
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
2004-04-10 19:19:09 +00:00
|
|
|
)
|
2004-09-19 01:18:12 +00:00
|
|
|
ret=$?; if [ $ret != 0 ]; then exit $ret; fi
|
2004-04-10 22:04:27 +00:00
|
|
|
|
2004-09-19 01:18:12 +00:00
|
|
|
# Only created on success
|
2004-04-11 03:39:14 +00:00
|
|
|
|
2004-04-10 22:04:27 +00:00
|
|
|
echo
|
2004-04-11 03:39:14 +00:00
|
|
|
echo "Creating m2 distribution for public consumption: ${DEPLOY_SITE}/${DIST}"
|
2004-04-10 22:04:27 +00:00
|
|
|
echo
|
2004-08-11 20:38:32 +00:00
|
|
|
|
|
|
|
mkdir -p $DEPLOY_DIR > /dev/null 2>&1
|
|
|
|
|
2004-09-02 12:34:19 +00:00
|
|
|
# Assumes pwd is still $HOME_DIR
|
2005-07-20 15:04:26 +00:00
|
|
|
gtar czf $DEPLOY_DIR/$DIST m2
|
2004-04-10 19:19:09 +00:00
|
|
|
|
2004-04-10 18:29:46 +00:00
|
|
|
else
|
|
|
|
|
2004-04-10 18:48:13 +00:00
|
|
|
echo "No updates occured, no build required. Done."
|
2004-04-10 18:29:46 +00:00
|
|
|
|
|
|
|
fi
|
|
|
|
|
2004-09-18 18:45:50 +00:00
|
|
|
) >> $MESSAGE 2>&1
|
2004-09-19 01:18:12 +00:00
|
|
|
ret=$?
|
2004-04-09 04:27:28 +00:00
|
|
|
|
2004-04-11 16:31:25 +00:00
|
|
|
BUILD_REQUIRED=`cat $HOME_DIR/build_required`
|
|
|
|
|
|
|
|
# Only send mail to the list if a build was required.
|
|
|
|
|
2004-06-28 04:38:37 +00:00
|
|
|
host=`hostname`
|
|
|
|
|
2004-04-11 16:31:25 +00:00
|
|
|
if [ "$BUILD_REQUIRED" = "true" ]
|
|
|
|
then
|
2004-09-19 01:18:12 +00:00
|
|
|
echo "From: $FROM" > log
|
|
|
|
echo "To: $TO" >> log
|
|
|
|
if [ $ret != 0 ]; then
|
2005-06-03 05:42:14 +00:00
|
|
|
echo "Subject: [maven2 build - FAILED - $CMD] $DATE" >> log
|
2004-09-19 01:18:12 +00:00
|
|
|
else
|
2005-06-03 05:42:14 +00:00
|
|
|
echo "Subject: [maven2 build - SUCCESS - $CMD] $DATE" >> log
|
2004-09-19 01:18:12 +00:00
|
|
|
echo "" >> log
|
|
|
|
echo "Distribution:" >> log
|
2004-09-19 02:16:57 +00:00
|
|
|
echo "${DEPLOY_SITE}/${DIST}" >>log
|
2005-04-13 11:28:50 +00:00
|
|
|
rm $HOME_DIR/build_required
|
2004-09-19 01:18:12 +00:00
|
|
|
fi
|
|
|
|
echo "" >> log
|
|
|
|
echo "Log:" >> log
|
2005-07-20 14:33:41 +00:00
|
|
|
echo "http://maven.zones.apache.org/~maven/logs/${MESSAGE_NAME}" >> log
|
2004-09-19 01:18:12 +00:00
|
|
|
|
2004-08-11 20:38:32 +00:00
|
|
|
/usr/sbin/sendmail -t < log
|
2004-04-11 16:31:25 +00:00
|
|
|
fi
|