[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