diff --git a/buildlocal.sh b/buildlocal.sh new file mode 100755 index 000000000..064e43f34 --- /dev/null +++ b/buildlocal.sh @@ -0,0 +1,106 @@ +####################################################################### +#build script for local usage +#used for Linux/AIX/Ubuntu +# +########################################################################### + + +OSNAME=$(uname) +NAMEALL=$(uname -a) + +echo "OSNAME is $OSNAME!" +echo "NAMEALL is $NAMEALL" + +ls /code/xcat-core + +if [ $? -gt 0 ]; then + echo "Error:no repo exist, exit 1." + exit 1 +fi + +# Get a lock, so can not do 2 builds at once +exec 8>/var/lock/xcatbld.lock +if ! flock -n 8; then + echo "Can't get lock /var/lock/xcatbld.lock. Someone else must be doing a build right now. Exiting...." + exit 1 +fi + +#used only for hard code, will change later +cd /code/xcat-core + +rm -rf build/ + +echo "===============================================" +echo $NAMEALL | egrep "Ubuntu" + +#Check if it is an Ubuntu system +if [ $? -eq 0 ]; then + +echo "This is an Ubuntu system" + pkg_type="snap" + build_string="Snap_Build" + cur_date=`date +%Y%m%d` + short_ver=`cat Version|cut -d. -f 1,2` + pkg_version="${short_ver}-${pkg_type}${cur_date}" + + mkdir -p /code/xcat-core/build + + for rpmname in xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT xCATsn xCAT-test; do + rpmname_low=`echo $rpmname | tr '[A-Z]' '[a-z]'` + echo "============================================" + echo "$rpmname_low" + cd $rpmname + dch -v $pkg_version -b -c debian/changelog $build_string + dpkg-buildpackage -uc -us + rc=$? + if [ $rc -gt 0 ]; then + echo "Error: $rpmname build package failed exit code $rc" + fi + cd - + mv ${rpmname_low}* /code/xcat-core/build + + done + #delete all files except .deb file + find /code/xcat-core/build/* ! -name *.deb | xargs rm -f + +else +#This is not an Ubuntu system +echo "This is an $OSNAME system" + + rm -rf /root/rpmbuild/RPMS/noarch/* + rm -rf /root/rpmbuild/RPMS/x86_64/* + rm -rf /root/rpmbuild/RPMS/ppc64/* + mkdir build/ + # Build the rest of the noarch rpms + for rpmname in xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-test xCAT-buildkit; do + if [ "$OSNAME" = "AIX" -a "$rpmname" = "xCAT-buildkit" ]; then continue; fi + ./makerpm $rpmname + done + + #build xCAT-genesis-scripts if it is x86_64 platform + ARCH=$(uname -p) + if [ "$ARCH" = "x64_64" ]; then + ./makerpm xCAT-genesis-scripts x86_64 + fi + + + # Build the xCAT and xCATsn rpms for all platforms + for rpmname in xCAT xCATsn; do + if [ "$OSNAME" = "AIX" ]; then + ./makerpm $rpmname + if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname"; fi + else + for arch in x86_64 ppc64 s390x; do + ./makerpm $rpmname $arch + if [ $? -ne 0 ]; then FAILEDRPMS="$FAILEDRPMS $rpmname-$arch"; fi + done + fi + done + + cp /root/rpmbuild/RPMS/noarch/* build/ + cp /root/rpmbuild/RPMS/x86_64/* build/ + cp /root/rpmbuild/RPMS/ppc64/* build/ + +fi + +