summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2016-08-23 16:41:53 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-08-25 23:03:47 +0100
commitcaf6ad889cc4db9d4af33ee15381d0148374dd12 (patch)
treee7f0f18a19b9023005c6ac37cb1505b5eec6d2ec
parent06b2c75c7e56d520a57302e4cc9a622137a4ca74 (diff)
downloadpoky-caf6ad889cc4db9d4af33ee15381d0148374dd12.tar.gz
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>
-rw-r--r--meta/lib/oeqa/buildperf/base.py19
-rwxr-xr-xscripts/oe-build-perf-test2
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):
226 226
227 # Create (annotated) tag 227 # Create (annotated) tag
228 if tag: 228 if tag:
229 # Replace keywords 229 # Find tags matching the pattern
230 tag = tag.format(git_branch=self.git_branch, 230 tag_keywords = dict(git_branch=self.git_branch,
231 git_commit=self.git_commit, 231 git_commit=self.git_commit,
232 tester_host=self.hostname) 232 tester_host=self.hostname,
233 tag_num='[0-9]{1,5}')
234 tag_re = re.compile(tag.format(**tag_keywords) + '$')
235 tag_keywords['tag_num'] = 0
236 for existing_tag in repo.run_cmd('tag').splitlines():
237 if tag_re.match(existing_tag):
238 tag_keywords['tag_num'] += 1
239
240 tag = tag.format(**tag_keywords)
241 msg = "Test run #{} of {}:{}\n".format(tag_keywords['tag_num'],
242 self.git_branch,
243 self.git_commit)
233 repo.run_cmd(['tag', '-a', '-m', msg, tag, commit]) 244 repo.run_cmd(['tag', '-a', '-m', msg, tag, commit])
234 245
235 finally: 246 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):
140 default="{git_branch}", 140 default="{git_branch}",
141 help="Commit results to branch BRANCH.") 141 help="Commit results to branch BRANCH.")
142 parser.add_argument('--commit-results-tag', metavar='TAG', 142 parser.add_argument('--commit-results-tag', metavar='TAG',
143 default="{git_branch}/{git_commit}", 143 default="{git_branch}/{git_commit}/{tag_num}",
144 help="Tag results commit with TAG.") 144 help="Tag results commit with TAG.")
145 145
146 return parser.parse_args(argv) 146 return parser.parse_args(argv)