diff --git a/build.bash b/build.bash old mode 100755 new mode 100644 index 6b62928..b28a498 --- a/build.bash +++ b/build.bash @@ -1,42 +1,58 @@ #!/bin/bash -ex -JSTART=`date` +resultdir="/var/lib/mock/fedora-rawhide-x86_64/result" -RPMDIR="/var/lib/mock/fedora-rawhide-x86_64/result" +# download spec file +curl https://raw.github.com/msrb/jenkins-configs/xmvn/xmvn.spec > xmvn.spec -VERSION=$(sed -n '//{s/.*>\(.*\)<.*/\1/;s/-SNAPSHOT$//;p;q}' pom.xml) -RELEASE=$(git describe --match="[^(jenkins)].*" --tags | sed 's/[^-]*-/0./;s/-/./;s/g/git/') -git archive -v --prefix=xmvn-${VERSION}/ HEAD | xz > xmvn-${VERSION}.tar.xz -sed -i "s/^Version:\s\+[0-9.]*$/Version: ${VERSION}/" xmvn.spec -sed -i "s/^Release:\s\+[0-9.]*%{?dist}$/Release: ${RELEASE}/" xmvn.spec +# create directories +repo=RPM/latest/ +[[ ! -d ${repo} ]] && mkdir -p ${repo} +# update version and release tag in spec file +version=$(sed -n '//{s/.*>\(.*\)<.*/\1/;s/-SNAPSHOT$//;p;q}' pom.xml) +release=$(git describe --match="[^(jenkins)].*" --tags | sed 's/[^-]*-/0./;s/-/./;s/g/git/') +sed -i "s/^Version:\s\+[0-9.]*$/Version: ${version}/" xmvn.spec +sed -i "s/^Release:\s\+[0-9.]*%{?dist}$/Release: ${release}/" xmvn.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`" xmvn.spec -trap "cat ${RPMDIR}/build.log || :" 0 -rm -rf ${RPMDIR} +# build RPM with custom mock config +rm -Rf ${resultdir}/* mock -r fedora-rawhide-x86_64 SRPMS/*.src.rpm -LAST_BN=`grep "Build number" RPM/latest/info.log | awk '{ print $3 }'` -mkdir -p RPM/${LAST_BN} -mv RPM/latest/* RPM/${LAST_BN} -echo $LAST_BN - -# we only want keep RPMs from last 10 builds -REMOVE_BN=`expr $LAST_BN - 10` -rm -Rf RPM/${REMOVE_BN} - -# copy resulting RPMs to RPM/latest -rm -Rf RPM/latest -cp -a ${RPMDIR} RPM/latest - -createrepo RPM/latest/ - +# remove unneeded stuff rm -f xmvn-*.tar.xz -JEND=`date` +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} -echo "Job start: $JSTART" > RPM/latest/info.log -echo "Job end: $JEND" >> RPM/latest/info.log -echo "Build number: $BUILD_NUMBER" >> RPM/latest/info.log + # we only want keep RPMs from last 10 builds + blist=`find ./RPM/ -maxdepth 1 -name "[0-9]*"` + for bn in $blist; do + if [ `basename $bn` -lt `expr $last_bn - 10` ]; then + rm -Rf $bn + fi + done +fi + +# copy resulting RPMs to RPM/latest +cp ${resultdir}/* ${repo} + +tail -n 50 ${resultdir}/build.log + +createrepo ${repo} + +# store current build number into the file +echo "Build number: $BUILD_NUMBER" >> ${repo}/info.log