From caf6ad889cc4db9d4af33ee15381d0148374dd12 Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Tue, 23 Aug 2016 16:41:53 +0300 Subject: 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 Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- 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 a3cd3f3155..faa30c72ec 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 1ed5bdbf5e..cd27584120 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) -- cgit 1.2.3-korg