Mercurial > treepkg
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() |