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