Blob Blame Raw
#!/bin/bash -ex

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

# 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}

# 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

# 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

# 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
    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
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