From 091db2e2f0b8e7a09ed5f257e30a145ef7f2aae5 Mon Sep 17 00:00:00 2001 From: Greg Brockman Date: Tue, 24 Aug 2010 02:24:29 -0400 Subject: [PATCH 1/1] Use generic hook for pre-build --- build-hooks/post-build | 26 ++++++++++++++++++++++---- invirtibuilder | 3 +-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/build-hooks/post-build b/build-hooks/post-build index 8dd8eb4..eeb8467 100755 --- a/build-hooks/post-build +++ b/build-hooks/post-build @@ -108,15 +108,27 @@ def repo_creation_msg(succeeded, values, verbose=True, success=lambda x: x, fail escape=lambda x: x): values = dict(values) assert succeeded + for key in ['category', 'name', 'principal']: + values[key] = escape(values[key]) msg = '%(principal)s just created a new repository, %(category)s/%(name)s.git' % values return msg +def prebuild_msg(succeeded, values, verbose=True, success=lambda x: x, failure=lambda x: x, + escape=lambda x: x): + for key in ['build_id', 'pocket', 'package', 'commit', 'principal', 'version', 'inserted_at']: + values[key] = escape(values[key]) + msg = """Build started: %(package)s %(version)s in %(pocket)s. +Base commit %(commit)s . +Job submitted by %(principal)s at %(inserted_at)s.""" % values + return msg + # Names of hooks POST_BUILD = 'post-build' FAILED_BUILD = 'failed-build' POST_SUBMIT = 'post-submit' FAILED_SUBMIT = 'failed-submit' POST_ADD_REPO = 'post-add-repo' +PRE_BUILD = 'pre-build' # Types of communication @@ -128,12 +140,14 @@ message_generators = { FAILED_BUILD : build_completion_msg, POST_SUBMIT : submit_completion_msg, FAILED_SUBMIT : submit_completion_msg, - POST_ADD_REPO : repo_creation_msg }, + POST_ADD_REPO : repo_creation_msg, + PRE_BUILD : prebuild_msg }, MAIL : { POST_BUILD : build_completion_msg, FAILED_BUILD : build_completion_msg, POST_SUBMIT : submit_completion_msg, FAILED_SUBMIT : submit_completion_msg, - POST_ADD_REPO : repo_creation_msg } + POST_ADD_REPO : repo_creation_msg, + PRE_BUILD : prebuild_msg } } def zephyr_escape(m): @@ -164,6 +178,8 @@ def main(): hook_config = config.build.hooks.failed_submit elif prog == POST_ADD_REPO: hook_config = config.build.hooks.post_add_repo + elif prog == PRE_BUILD: + hook_config = config.build.hooks.pre_build else: parser.error('hook script invoked with unrecognized name %s' % prog) return 2 @@ -171,7 +187,7 @@ def main(): print >>sys.stderr, 'No hook configuration found for %s.' % prog return 1 - if prog in [POST_BUILD, FAILED_BUILD]: + if prog in [POST_BUILD, FAILED_BUILD, PRE_BUILD]: if len(args) != 1: parser.set_usage('Usage: %prog [options] build_id') parser.print_help() @@ -191,7 +207,9 @@ def main(): 'version' : build.version, 'default_instance' : 'b%(build_id)s', 'default_subject' : 'Build %(build_id)d %(result)s: %(package)s %(version)s in %(pocket)s'} - if build.succeeded: + if prog == PRE_BUILD: + succeeded = True + elif build.succeeded: assert prog == POST_BUILD values['result'] = 'succeeded' succeeded = True diff --git a/invirtibuilder b/invirtibuilder index 6f3d917..b6d4eb8 100755 --- a/invirtibuilder +++ b/invirtibuilder @@ -314,8 +314,7 @@ def build(): src = b.validateBuild(pocket, package, commit) version = b.getVersion(package, commit) db.version = str(version) - b.runHook('pre-build', [str(db.build_id), db.pocket, db.package, - db.commit, db.principal, db.version, str(db.inserted_at)]) + b.runHook('pre-build', [str(db.build_id)]) env = dict(os.environ) env['GIT_COMMITTER_NAME'] = config.build.tagger.name -- 1.7.9.5