comparison recipes/kde/enterprise/tags.py @ 524:e90a21cfbc3b

added an option to fail if a tag could not be found instread of building trunk fail is the default now
author Bjoern Ricks <bricks@intevation.de>
date Thu, 11 Nov 2010 11:50:08 +0000
parents e44c9c3f69f8
children 4a56ebc53ada
comparison
equal deleted inserted replaced
523:10a7fed8bf80 524:e90a21cfbc3b
8 8
9 """PackageTrack for kde entperprise tag only builds""" 9 """PackageTrack for kde entperprise tag only builds"""
10 10
11 import logging 11 import logging
12 12
13 from treepkg.readconfig import convert_bool
13 import recipes.kde.enterprise.generic as enterprise 14 import recipes.kde.enterprise.generic as enterprise
14 15
15 class PackageTrack(enterprise.PackageTrack): 16 class PackageTrack(enterprise.PackageTrack):
16 17
17 """In contrast to recipes.kde.enterprise.generic.PackageTrack 18 """In contrast to recipes.kde.enterprise.generic.PackageTrack
18 this PackageTrack either builds trunk or newest tag""" 19 this PackageTrack either builds trunk or newest tag"""
19 20
20 revision_packager_cls = enterprise.RevisionPackager 21 revision_packager_cls = enterprise.RevisionPackager
21 22
23 extra_config_desc = [("tags_url", str, ""),
24 ("tags_pattern", str, ""),
25 ("tags_subdir", str, ""),
26 ("tags_scm_type", str, None),
27 ("tags_rules_url", str, None),
28 ("tags_rules_pattern", str, ""),
29 ("tags_rules_subdir", str, ""),
30 ("tags_rules_scm_type", str, None),
31 ("fail_if_tag_not_found", convert_bool, "true")]
32
22 def __init__(self, *args, **kw): 33 def __init__(self, *args, **kw):
34 self.fail_if_tag_not_found = kw.pop("fail_if_tag_not_found")
23 super(PackageTrack, self).__init__(*args, **kw) 35 super(PackageTrack, self).__init__(*args, **kw)
24 36
25 def packager_for_new_revision(self): 37 def packager_for_new_revision(self):
26 logging.info("Checking tags") 38 logging.info("Checking tags")
27 self.tag_url = None 39 self.tag_url = None
29 tag_url, tag_revision = self.tag_detector.newest_tag_revision() 41 tag_url, tag_revision = self.tag_detector.newest_tag_revision()
30 tag_rules_url, tag_rules_revision = self.tag_rules_detector.newest_tag_revision() 42 tag_rules_url, tag_rules_revision = self.tag_rules_detector.newest_tag_revision()
31 logging.info("Found: %s: %s", tag_url, tag_revision) 43 logging.info("Found: %s: %s", tag_url, tag_revision)
32 logging.info("Found rules: %s: %s", tag_rules_url, tag_rules_revision) 44 logging.info("Found rules: %s: %s", tag_rules_url, tag_rules_revision)
33 if self.use_tag_rules and tag_rules_url is None: 45 if self.use_tag_rules and tag_rules_url is None:
34 self.use_tag_rules = False # maybe it's better to raise an exception 46 self.use_tag_rules = False
47 logging.error("No rules found in tag but tag should be used to" \
48 " build package.")
49 return
35 if tag_url is not None: 50 if tag_url is not None:
36 if not self.use_tag_rules: 51 if not self.use_tag_rules:
37 tag_rules_revision = self.rules_working_copy.last_changed_revision() 52 tag_rules_revision = self.rules_working_copy.last_changed_revision()
38 revision = (tag_revision, tag_rules_revision) 53 revision = (tag_revision, tag_rules_revision)
39 logging.info("New revision is %s", revision) 54 logging.info("New revision is %s", revision)
54 *revision) 69 *revision)
55 else: 70 else:
56 logging.info("Revision %s has already been packaged.", 71 logging.info("Revision %s has already been packaged.",
57 revision) 72 revision)
58 73
59 else: # tag_url is not set -> build trunk 74 else:
75 if self.fail_if_tag_not_found:
76 logging.error("Could not find tag for track %s", self.name)
77 return
78 # tag_url is not set -> build trunk
60 # don't use rules from tags for trunk builds 79 # don't use rules from tags for trunk builds
61 self.use_tag_rules = False 80 self.use_tag_rules = False
62 return super(PackageTrack, self).new_revsision_packager() 81 return super(PackageTrack, self).new_revsision_packager()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)