From ba865b3c0cbd3e742e0e6d9f193ef280c5484938 Mon Sep 17 00:00:00 2001 From: Michal Srb Date: Apr 28 2014 11:35:53 +0000 Subject: Refactoring in build.bash --- diff --git a/build.bash b/build.bash index 919cb5f..18a2803 100644 --- a/build.bash +++ b/build.bash @@ -1,60 +1,62 @@ #!/bin/bash -ex -JSTART=`date` - -REPO=RPM/latest/ -RPMDIR="/var/lib/mock/fedora-rawhide-x86_64/result" - -if [ ! -d ${REPO} ]; then - mkdir -p ${REPO} -fi +resultdir="/var/lib/mock/javapackages-rawhide/result/" +# download custom mock config curl https://raw.githubusercontent.com/msrb/jenkins-configs/javapackages-tools/fedora-rawhide-x86_64.cfg > fedora-rawhide-x86_64.cfg - touch -d '01 Jan 2000' fedora-rawhide-x86_64.cfg -rm -f javapackages-tools.spec default.spec && curl https://raw.githubusercontent.com/msrb/jenkins-configs/javapackages-tools/javapackages-tools.spec > default.spec +# download custom mock config +curl https://raw.githubusercontent.com/msrb/jenkins-configs/javapackages-tools/javapackages-tools.spec > javapackages-tools.spec + +# create directories +repo=RPM/latest/ +[[ ! -d ${repo} ]] && mkdir -p ${repo} -cp default.spec javapackages-tools.spec +# update version and release tag in spec file +version=`sed 's/-SNAPSHOT//' VERSION` +release=$(git describe --match="[^(jenkins)].*" --tags | sed 's/[^-]*-/0./;s/-/./;s/g/git/') +sed -i "s/^Version:\s\+[0-9.]*$/Version: ${version}/" javapackages-tools.spec +sed -i "s/^Release:\s\+[0-9.]*%{?dist}$/Release: ${release}/" javapackages-tools.spec -VERSION=`sed 's/-SNAPSHOT//' VERSION` -RELEASE=$(git describe --match="[^(jenkins)].*" --tags | sed 's/[^-]*-/0./;s/-/./;s/g/git/') -git archive -v --prefix=javapackages-${VERSION}/ HEAD | xz > javapackages-${VERSION}.tar.xz -sed -i "s/^Version:\s\+[0-9.]*$/Version: ${VERSION}/" javapackages-tools.spec -sed -i "s/^Release:\s\+[0-9.]*%{?dist}$/Release: ${RELEASE}/" javapackages-tools.spec +# make tarball +git archive -v --prefix=javapackages-${version}/ HEAD | xz > javapackages-${version}.tar.xz +# print root.log and build.log in case of failure +trap "cat ${resultdir}/root.log | tail -30; cat ${resultdir}/build.log || :" 0 + +# crate srpm rm -f SRPMS/* rpmbuild -bs --clean --define "_topdir `pwd`" --define "_sourcedir `pwd`" javapackages-tools.spec -#trap "cat ${RPMDIR}/root.log | tail -30; cat ${RPMDIR}/build.log || :" 0 - +# build RPM with custom mock config +rm -Rf ${resultdir}/* mock -r ../..$PWD/fedora-rawhide-x86_64 SRPMS/*.src.rpm +# remove unneeded stuff +rm -f javapackages-*.tar.xz -LAST_BN=`grep "Build number" ${REPO}/info.log | awk '{ print $3 }'` -if [ -n "${LAST_BN}" ]; then - mkdir -p RPM/${LAST_BN} - mv ${REPO}/* RPM/${LAST_BN} - - # we only want keep RPMs from last 10 builds - REMOVE_BN=`expr $LAST_BN - 10` - rm -Rf RPM/${REMOVE_BN} +last_bn=`grep "Build number" ${repo}/info.log | awk '{ print $3 }'` +if [ -n "${last_bn}" ]; then + mkdir -p RPM/${last_bn} + mv ${repo}/* RPM/${last_bn} + + # we only want keep RPMs from last 10 builds + blist=`find ./RPM/ -name "[0-9]*"` + for bn in $blist; do + if [ `basename $bn` -lt `expr $last_bn - 10` ]; then + rm -Rf RPM/$bn + fi + done fi # copy resulting RPMs to RPM/latest -RESULT="/var/lib/mock/javapackages-rawhide/result/" -for pkg in `ls -1 ${RESULT}/ | grep ".noarch.rpm"`; do - cp ${RESULT}/$pkg ${REPO}/${pkg} -done -tail -n 50 ${RESULT}/build.log -rm -Rf ${RESULT}/* +cp ${resultdir}/* ${repo} -createrepo ${REPO} +tail -n 50 ${resultdir}/build.log -rm -f javapackages-*.tar.xz +createrepo ${repo} -JEND=`date` +# store current build number into the file +echo "Build number: $BUILD_NUMBER" >> ${repo}/info.log -echo "Job start: $JSTART" > ${REPO}/info.log -echo "Job end: $JEND" >> ${REPO}/info.log -echo "Build number: $BUILD_NUMBER" >> ${REPO}/info.log