The branch, master has been updated via d751b05 Cope with builds already existing. from 73d45eb Cope with system version of sqlite.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit d751b05bd7c140307427ce7403b29a42d282535c Author: Jelmer Vernooij <jel...@samba.org> Date: Sat Nov 13 17:54:11 2010 +0100 Cope with builds already existing. ----------------------------------------------------------------------- Summary of changes: buildfarm/sqldb.py | 9 +++++++++ import-and-analyse.py | 18 +++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) Changeset truncated at 500 lines: diff --git a/buildfarm/sqldb.py b/buildfarm/sqldb.py index ca7d235..a244bd9 100644 --- a/buildfarm/sqldb.py +++ b/buildfarm/sqldb.py @@ -172,6 +172,15 @@ class StormCachingBuildResultStore(BuildResultStore): def upload_build(self, build): super(StormCachingBuildResultStore, self).upload_build(build) rev, timestamp = build.revision_details() + result = self.store.find(StormBuild, StormBuild.checksum == build.log_checksum()) + existing_build = result.one() + if existing_build is not None: + # Already present + assert build.tree == existing_build.tree + assert build.host == existing_build.host + assert build.compiler == existing_build.compiler + assert rev == existing_build.revision + return new_basename = self.build_fname(build.tree, build.host, build.compiler, rev) new_build = StormBuild(new_basename, unicode(build.tree), unicode(build.host), unicode(build.compiler), rev) new_build.checksum = build.log_checksum() diff --git a/import-and-analyse.py b/import-and-analyse.py index 05c8a87..07ddcd0 100755 --- a/import-and-analyse.py +++ b/import-and-analyse.py @@ -39,7 +39,7 @@ def check_and_send_mails(tree, host, compiler, cur, old): if not cur_status.regressed_since(old_status): if opts.verbose >= 1: - print "the build didn't get worse since %r" % old_status + print "... hasn't regressed since %s: %s" % (old_rev, old_status) return recipients = set() @@ -95,16 +95,16 @@ for build in buildfarm.get_new_builds(): print str(build.status()) try: - prev_rev = buildfarm.builds.get_previous_revision(build.tree, build.host, build.compiler, rev) - except data.NoSuchBuildError: - try: + if opts.dry_run: # Perhaps this is a dry run and rev is not in the database yet? prev_rev = buildfarm.builds.get_latest_revision(build.tree, build.host, build.compiler) - except data.NoSuchBuildError: - if opts.verbose >= 1: - print "Unable to find previous build for %s,%s,%s" % (build.tree, build.host, build.compiler) - # Can't send a nastygram until there are 2 builds.. - continue + else: + prev_rev = buildfarm.builds.get_previous_revision(build.tree, build.host, build.compiler, rev) + except data.NoSuchBuildError: + if opts.verbose >= 1: + print "Unable to find previous build for %s,%s,%s" % (build.tree, build.host, build.compiler) + # Can't send a nastygram until there are 2 builds.. + continue else: prev_build = buildfarm.get_build(build.tree, build.host, build.compiler, prev_rev) check_and_send_mails(build.tree, build.host, build.compiler, build, prev_build) -- build.samba.org