[gnome-continuous-yocto/gnomeostree-3.28-rocko: 2089/8267] oe-build-perf-test: new {tag_num} keyword for --commit-results-tag



commit caf6ad889cc4db9d4af33ee15381d0148374dd12
Author: Markus Lehtonen <markus lehtonen linux intel com>
Date:   Tue Aug 23 16:41:53 2016 +0300

    oe-build-perf-test: new {tag_num} keyword for --commit-results-tag
    
    This makes it possible to create numbered tags, where the "basename" of
    the tag is the same and the only difference is an (automatically)
    increasing index number. This is useful if you do multiple test runs on
    the same commit. For example, using:
    --commit-results-tag {tester_host}/{git_commit}/{tag_num}
    
    would give you tags something like:
    myhost/decb3119dffd3fd38b800bebc1e510f9217a152e/0
    myhost/decb3119dffd3fd38b800bebc1e510f9217a152e/1
    ...
    
    The default tag format is updated to use this new keyword in order to
    prevent unintentional tag name clashes.
    
    (From OE-Core rev: cf2aba16338a147f81802f48d2e24a96c7133548)
    
    Signed-off-by: Markus Lehtonen <markus lehtonen linux intel com>
    Signed-off-by: Ross Burton <ross burton intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/lib/oeqa/buildperf/base.py |   19 +++++++++++++++----
 scripts/oe-build-perf-test      |    2 +-
 2 files changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/meta/lib/oeqa/buildperf/base.py b/meta/lib/oeqa/buildperf/base.py
index a3cd3f3..faa30c7 100644
--- a/meta/lib/oeqa/buildperf/base.py
+++ b/meta/lib/oeqa/buildperf/base.py
@@ -226,10 +226,21 @@ class BuildPerfTestResult(unittest.TextTestResult):
 
             # Create (annotated) tag
             if tag:
-                # Replace keywords
-                tag = tag.format(git_branch=self.git_branch,
-                                 git_commit=self.git_commit,
-                                 tester_host=self.hostname)
+                # Find tags matching the pattern
+                tag_keywords = dict(git_branch=self.git_branch,
+                                    git_commit=self.git_commit,
+                                    tester_host=self.hostname,
+                                    tag_num='[0-9]{1,5}')
+                tag_re = re.compile(tag.format(**tag_keywords) + '$')
+                tag_keywords['tag_num'] = 0
+                for existing_tag in repo.run_cmd('tag').splitlines():
+                    if tag_re.match(existing_tag):
+                        tag_keywords['tag_num'] += 1
+
+                tag = tag.format(**tag_keywords)
+                msg = "Test run #{} of {}:{}\n".format(tag_keywords['tag_num'],
+                                                       self.git_branch,
+                                                       self.git_commit)
                 repo.run_cmd(['tag', '-a', '-m', msg, tag, commit])
 
         finally:
diff --git a/scripts/oe-build-perf-test b/scripts/oe-build-perf-test
index 1ed5bdb..cd27584 100755
--- a/scripts/oe-build-perf-test
+++ b/scripts/oe-build-perf-test
@@ -140,7 +140,7 @@ def parse_args(argv):
                         default="{git_branch}",
                         help="Commit results to branch BRANCH.")
     parser.add_argument('--commit-results-tag', metavar='TAG',
-                        default="{git_branch}/{git_commit}",
+                        default="{git_branch}/{git_commit}/{tag_num}",
                         help="Tag results commit with TAG.")
 
     return parser.parse_args(argv)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]