awips2/rpms/unidata/build.sh
2017-03-20 19:29:31 -06:00

110 lines
3.6 KiB
Bash
Executable file

#!/bin/bash -v
set -xe
if [ ${2} = "buildCAVE"]; then
rm -rf /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline/
fi
export JENKINS_WORKSPACE=/awips2/repo/awips2-builds
# determine where we are ...
path_to_script=`readlink -f $0`
dir=$(dirname $path_to_script)
export _script_dir=${dir}
echo "Running build.sh from ${_script_dir}"
echo " JENKINS_WORKSPACE = ${JENKINS_WORKSPACE}"
#/bin/bash ${_script_dir}/build2.sh
#echo "Entering the build2.sh script"
START_TIME=`date "+%s"`
timestamp=`date +%Y_%m_%d_%H:%M:%S`
# set all awips2 components into the path.
#export PATH=/awips2/java/bin:/awips2/python/bin:/awips2/ant/bin:/usr/local/heroku/bin:/home/mjames/util:/awips2/eclipse:/usr/lib64/qt-3.3/bin:/bin:/usr/local/bin:/bin:/usr/bin:/usr/ccs/bin
#export LD_LIBRARY_PATH=/awips2/java/lib:/awips2/python/lib:${LD_LIBRARY_PATH}
export JAVA_HOME=/awips2/java
export ANT_HOME=/awips2/ant
# determine where we are ...
path_to_script=`readlink -f $0`
dir=$(dirname $path_to_script)
cd ${dir}
logdir=${dir}/../logs
# prepare the build environment (since we are manually executed)
source ${dir}/buildEnvironment.sh
echo "BUILD_DIR = $BUILD_DIR"
echo "BUILD_WORKSPACE = $BUILD_WORKSPACE"
echo "BASELINE = $BASELINE"
echo "AWIPSII_VERSION = $AWIPSII_VERSION"
echo "AWIPSII_RELEASE = $AWIPSII_RELEASE"
echo "AWIPSII_TOP_DIR = $AWIPSII_TOP_DIR"
echo "WORKSPACE = $WORKSPACE"
echo "UFRAME_ECLIPSE = $UFRAME_ECLIPSE"
echo "AWIPSII_STATIC_FILES = $AWIPSII_STATIC_FILES"
echo "AWIPSII_BUILD_ROOT = $AWIPSII_BUILD_ROOT"
# prepare the rpm build directory structure
mkdir -p ${AWIPSII_TOP_DIR}/BUILD
mkdir -p ${AWIPSII_TOP_DIR}/RPMS
mkdir -p ${AWIPSII_TOP_DIR}/SOURCES
mkdir -p ${AWIPSII_TOP_DIR}/SPECS
mkdir -p ${AWIPSII_TOP_DIR}/SRPMS
echo BASELINE is ${BASELINE}
echo WORKSPACE is ${WORKSPACE}
# prepare the baseline
pushd . > /dev/null 2>&1
cd ${BASELINE}
mkdir -p ${WORKSPACE}
RSYNC_DIRS=`cat $dir/rsync.dirs`
rsync -ruql --delete --exclude-from=${dir}/excludes ${RSYNC_DIRS} ${WORKSPACE}
popd > /dev/null 2>&1
# execute the build for the appropriate architecture
_rpms_build_directory=${WORKSPACE}/rpms/build
_architecture=`uname -i`
_build_sh_directory=${_rpms_build_directory}/${_architecture}
pushd . > /dev/null 2>&1
cd ${_build_sh_directory}
cp -v ${dir}/buildEnvironment.sh .
#Usage: build.sh OPTION [-nobinlightning]
# -delta perform a build of only the rpms that are likely to change.
# -full perform a full build of all the rpms.
# -ade build all rpms that are packaged in the ade.
# -viz only build the Viz rpms (CAVE & AlertViz).
# -edex only build the EDEX rpms.
# -qpid build only the QPID rpms.
# -ldm build the awips2-ldm rpm; requires root privileges.
# -package create a yum repository tar file with the rpms that were just built.
# --help display this message and exit.
#
# check rpms/build/x86_64/build.sh for these groups
#
pwd
/bin/bash ${_build_sh_directory}/build.sh ${1} ${2} > ${dir}/build${1}-${timestamp}.log
popd > /dev/null 2>&1
export rpm_end_dir="${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/x86_64/)" ]; then
mv ${AWIPSII_TOP_DIR}/RPMS/x86_64/* /awips2/jenkins/build/rpms/awips2_${AWIPSII_VERSION}/x86_64/
fi
if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/noarch/)" ]; then
mv ${AWIPSII_TOP_DIR}/RPMS/noarch/* /awips2/jenkins/build/rpms/awips2_${AWIPSII_VERSION}/noarch/
fi
END_TIME=`date "+%s"`
TIME_SPENT=$((END_TIME - START_TIME))
TTI_HOURS=$((TIME_SPENT/3600))
TTI_SECS=$((TIME_SPENT %3600)) #Remaining seconds
TTI_MINS=$((TTI_SECS/60))
TTI_SECS=$((TTI_SECS%60))
echo "Total-time-Spent-In-The-Build-For $0 = $TTI_HOURS hours, $TTI_MINS minutes, $TTI_SECS seconds"
exit