Refactoring in build.bash
This commit is contained in:
parent
96efd14780
commit
ba865b3c0c
74
build.bash
74
build.bash
@ -1,60 +1,62 @@
|
|||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
|
|
||||||
JSTART=`date`
|
resultdir="/var/lib/mock/javapackages-rawhide/result/"
|
||||||
|
|
||||||
REPO=RPM/latest/
|
|
||||||
RPMDIR="/var/lib/mock/fedora-rawhide-x86_64/result"
|
|
||||||
|
|
||||||
if [ ! -d ${REPO} ]; then
|
|
||||||
mkdir -p ${REPO}
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# download custom mock config
|
||||||
curl https://raw.githubusercontent.com/msrb/jenkins-configs/javapackages-tools/fedora-rawhide-x86_64.cfg > fedora-rawhide-x86_64.cfg
|
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
|
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
|
||||||
|
|
||||||
cp default.spec javapackages-tools.spec
|
# create directories
|
||||||
|
repo=RPM/latest/
|
||||||
|
[[ ! -d ${repo} ]] && mkdir -p ${repo}
|
||||||
|
|
||||||
VERSION=`sed 's/-SNAPSHOT//' VERSION`
|
# update version and release tag in spec file
|
||||||
RELEASE=$(git describe --match="[^(jenkins)].*" --tags | sed 's/[^-]*-/0./;s/-/./;s/g/git/')
|
version=`sed 's/-SNAPSHOT//' VERSION`
|
||||||
git archive -v --prefix=javapackages-${VERSION}/ HEAD | xz > javapackages-${VERSION}.tar.xz
|
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/^Version:\s\+[0-9.]*$/Version: ${version}/" javapackages-tools.spec
|
||||||
sed -i "s/^Release:\s\+[0-9.]*%{?dist}$/Release: ${RELEASE}/" 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/*
|
rm -f SRPMS/*
|
||||||
rpmbuild -bs --clean --define "_topdir `pwd`" --define "_sourcedir `pwd`" javapackages-tools.spec
|
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
|
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 }'`
|
last_bn=`grep "Build number" ${repo}/info.log | awk '{ print $3 }'`
|
||||||
if [ -n "${LAST_BN}" ]; then
|
if [ -n "${last_bn}" ]; then
|
||||||
mkdir -p RPM/${LAST_BN}
|
mkdir -p RPM/${last_bn}
|
||||||
mv ${REPO}/* RPM/${LAST_BN}
|
mv ${repo}/* RPM/${last_bn}
|
||||||
|
|
||||||
# we only want keep RPMs from last 10 builds
|
# we only want keep RPMs from last 10 builds
|
||||||
REMOVE_BN=`expr $LAST_BN - 10`
|
blist=`find ./RPM/ -name "[0-9]*"`
|
||||||
rm -Rf RPM/${REMOVE_BN}
|
for bn in $blist; do
|
||||||
|
if [ `basename $bn` -lt `expr $last_bn - 10` ]; then
|
||||||
|
rm -Rf RPM/$bn
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# copy resulting RPMs to RPM/latest
|
# copy resulting RPMs to RPM/latest
|
||||||
RESULT="/var/lib/mock/javapackages-rawhide/result/"
|
cp ${resultdir}/* ${repo}
|
||||||
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}/*
|
|
||||||
|
|
||||||
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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user