[Qa-jenkins-scm] [jenkins.debian.net] 01/01: reproducible rpms: refactor
Holger Levsen
holger at moszumanska.debian.org
Wed Dec 16 16:11:09 UTC 2015
This is an automated email from the git hooks/post-receive script.
holger pushed a commit to branch master
in repository jenkins.debian.net.
commit 81cff721a4efc353e5d74066b0b1e33d5c3dc6dc
Author: Holger Levsen <holger at layer-acht.org>
Date: Wed Dec 16 17:10:40 2015 +0100
reproducible rpms: refactor
---
bin/reproducible_build_rpm.sh | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/bin/reproducible_build_rpm.sh b/bin/reproducible_build_rpm.sh
index bc06f60..b754fb7 100755
--- a/bin/reproducible_build_rpm.sh
+++ b/bin/reproducible_build_rpm.sh
@@ -38,6 +38,7 @@ handle_remote_error() {
update_mock() {
echo "$(date -u ) - checking whether to update mock and yum for $RELEASE ($ARCH) on $HOSTNAME."
local STAMP="${RPM_STAMPS}-$RELEASE-$ARCH"
+ touch -d "$(date -u -d "6 hours ago" '+%Y-%m-%d %H:%M') UTC" $DUMMY
if [ ! -f $STAMP ] || [ $DUMMY -nt $STAMP ] ; then
echo "$(date -u ) - updating mock for $RELEASE ($ARCH) on $HOSTNAME now..."
mock -r $RELEASE-$ARCH --resultdir=. --cleanup-after -v --update 2>&1
@@ -48,6 +49,7 @@ update_mock() {
else
echo "$(date -u ) - mock and yum not updated, last update was at $(TZ=UTC ls --full-time $STAMP | cut -d ' ' -f6-7 | cut -d '.' -f1) UTC."
fi
+ rm $DUMMY > /dev/null
}
download_package() {
@@ -58,12 +60,13 @@ download_package() {
choose_package() {
echo "$(date -u ) - choosing package to be build."
- local MIN_AGE=6
+ local MIN_AGE=7
+ touch -d "$(date -u -d "$MIN_AGE days ago" '+%Y-%m-%d %H:%M') UTC" $DUMMY
# instead of hardcoding the list of packages we can also use something like this to get a list of all packages:
# yumdownloader --urls --source --releasever=23 '*'
for PKG in $(echo audit-libs basesystem bash binutils bzip2 bzip2-libs ca-certificates chkconfig coreutils cpio cpp cracklib cracklib-dicts crypto-policies curl cyrus-sasl-lib diffutils dwz elfutils elfutils-default-yama-scope elfutils-libelf elfutils-libs emacs-filesystem expat fedora-release fedora-repos file file-libs filesystem findutils gawk gc gcc gcc-c++ gdb gdbm ghc-srpm-macros glib2 glibc glibc-common glibc-devel glibc-headers gmp gnat-srpm-macros gnupg2 gnutls go-srpm-macros g [...]
# build package if it has never build or at least $MIN_AGE days ago
- if [ ! -d $BASE/rpms/$RELEASE/$ARCH/$PKG ] || [ ! -z $(find $BASE/rpms/$RELEASE/$ARCH/ -name $PKG -mtime +$MIN_AGE) ] ; then
+ if [ ! -d $BASE/rpms/$RELEASE/$ARCH/$PKG ] || [ $DUMMY -nt $BASE/rpms/$RELEASE/$ARCH/$PKG ] ; then
SRCPACKAGE=$PKG
echo "$(date -u ) - building package $PKG from '$RELEASE' on '$ARCH' now..."
# very simple locking…
@@ -74,6 +77,7 @@ choose_package() {
break
fi
done
+ rm $DUMMY > /dev/null
if [ -z $SRCPACKAGE ] ; then
echo "$(date -u ) - no package found to be build, sleeping 6h."
for i in $(seq 1 12) ; do
@@ -177,7 +181,6 @@ TIMEOUT=8 # maximum time in hours for a single build
DATE=$(date -u +'%Y-%m-%d %H:%M')
START=$(date +'%s')
DUMMY=$(mktemp -t rpm-dummy-XXXXXXXX)
-touch -d "$(date -u -d "6 hours ago" '+%Y-%m-%d %H:%M') UTC" $DUMMY
RPM_STAMPS=/srv/reproducible-results/.rpm_stamp
#
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/qa/jenkins.debian.net.git
More information about the Qa-jenkins-scm
mailing list