The problem: when a release build for windows fails on the build server, the 
tag has to be removed, one day has to pass, another tag created and finally 
two days later, a new build appears. This is, of course, unless a developer 
with access to the build server manually resets the build.

The proposed solution: the attached patch changes the tag build script to deal 
with this. In addition to checking for new tags, the script also checks the 
tags' revisions for changes. So if a Windows build fails the release manager 
can simply untag, apply the necessary fixes and retag. The next time it's run, 
the script will detect a change in the revision for that tag, and restart the 
build. This will be a complete rebuild by the way, all traces of the previous 
(failed) build will be removed. So the next morning a new build can be 
available.

If you like it, you or I can commit this. I didn't want to do this directly 
because of this:

!! WARNING WARNING !! before installing the new script on the build server, be 
sure to remove the existing tags file !!
Its format changes with this patch. Keeping the old tags file around will 
start a rebuild of ALL tags. Simply removing the tags file will prevent this.

I don't know if the script gets installed automatically when I commit the 
changes to svn, so I'll wait for feedback of the ones in charge of the build 
server.

Geert
### Eclipse Workspace Patch 1.0
#P GnuCash-trunk
Index: packaging/win32/build_tags.sh
===================================================================
--- packaging/win32/build_tags.sh	(revision 19072)
+++ packaging/win32/build_tags.sh	(working copy)
@@ -25,12 +25,12 @@
 # If we don't have a tagfile then start from 'now'
 tagfile=tags
 if [ ! -f ${tagfile} ] ; then
-  svn ls ${TAG_URL} > ${tagfile}
+  svn ls -v ${TAG_URL} |  awk '/[^.]\/$/ { print $6$1 }' > ${tagfile}
 fi
 
 # Figure out the new set of tags
-svn ls ${TAG_URL} > ${tagfile}.new
-tags="`diff --suppress-common-lines ${tagfile} ${tagfile}.new | grep '^> ' | sed -e 's/^> //g' -e 's#/$##g'`"
+svn ls -v ${TAG_URL} |  awk '/[^.]\/$/ { print $6$1 }' > ${tagfile}.new
+tags="`diff --suppress-common-lines ${tagfile} ${tagfile}.new | grep '^> ' | sed -e 's/^> //g'`"
 
 # move the new file into place
 mv -f ${tagfile}.new ${tagfile}
@@ -38,9 +38,11 @@
 ################################################################
 # Now iterate over all the new tags (if any) and build a package
 
-for tag in $tags ; do
+for tag_rev in $tags ; do
+  tag=${tag_rev%/*}
   tagbasedir=/c/soft/gnucash-${tag}
   tagdir=${tagbasedir}/gnucash
+  rm -fr $tagbasedir
   mkdir -p ${tagdir}
 
   # Copy the downloads to save time
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to