summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2016-08-16 15:56:56 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-08-25 23:00:03 +0100
commit60059ff5b81d6ba9ba344161d51d1290559ac2df (patch)
tree49e6ff4663472cf3f8c6bcaad822c1eb358bbfce
parent759357a3bdbe75a3409b9e58979ab8b45d9b6ae8 (diff)
downloadopenembedded-core-contrib-60059ff5b81d6ba9ba344161d51d1290559ac2df.tar.gz
openembedded-core-contrib-60059ff5b81d6ba9ba344161d51d1290559ac2df.tar.bz2
openembedded-core-contrib-60059ff5b81d6ba9ba344161d51d1290559ac2df.zip
oe-build-perf-test: tag results committed to Git
Create a Git tag when committing results to a Git repository. This patch also implements --commit-results-tag command line option for controlling the tag name. The value is a format string where the following fields may be used: - {git_branch} - target branch being tested - {git_commit} - target commit being tested - {tester_host} - hostname of the tester machine Tagging can be disabled by giving an empty string to --commit-results-tag. The option has no effect if --commit-results is not defined. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/lib/oeqa/buildperf/base.py11
-rwxr-xr-xscripts/oe-build-perf-test6
2 files changed, 15 insertions, 2 deletions
diff --git a/meta/lib/oeqa/buildperf/base.py b/meta/lib/oeqa/buildperf/base.py
index 119e6edf18..a3cd3f3155 100644
--- a/meta/lib/oeqa/buildperf/base.py
+++ b/meta/lib/oeqa/buildperf/base.py
@@ -188,7 +188,7 @@ class BuildPerfTestResult(unittest.TextTestResult):
fobj.write(','.join(values) + '\n')
- def git_commit_results(self, repo_path, branch=None):
+ def git_commit_results(self, repo_path, branch=None, tag=None):
"""Commit results into a Git repository"""
repo = GitRepo(repo_path, is_topdir=True)
if not branch:
@@ -223,6 +223,15 @@ class BuildPerfTestResult(unittest.TextTestResult):
if repo.get_current_branch() == branch:
log.info("Updating %s HEAD to latest commit", repo_path)
repo.run_cmd('reset --hard')
+
+ # Create (annotated) tag
+ if tag:
+ # Replace keywords
+ tag = tag.format(git_branch=self.git_branch,
+ git_commit=self.git_commit,
+ tester_host=self.hostname)
+ repo.run_cmd(['tag', '-a', '-m', msg, tag, commit])
+
finally:
if os.path.exists(tmp_index):
os.unlink(tmp_index)
diff --git a/scripts/oe-build-perf-test b/scripts/oe-build-perf-test
index 437611c856..1ed5bdbf5e 100755
--- a/scripts/oe-build-perf-test
+++ b/scripts/oe-build-perf-test
@@ -139,6 +139,9 @@ def parse_args(argv):
parser.add_argument('--commit-results-branch', metavar='BRANCH',
default="{git_branch}",
help="Commit results to branch BRANCH.")
+ parser.add_argument('--commit-results-tag', metavar='TAG',
+ default="{git_branch}/{git_commit}",
+ help="Tag results commit with TAG.")
return parser.parse_args(argv)
@@ -193,7 +196,8 @@ def main(argv=None):
result.update_globalres_file(args.globalres_file)
if args.commit_results:
result.git_commit_results(args.commit_results,
- args.commit_results_branch)
+ args.commit_results_branch,
+ args.commit_results_tag)
return 0
return 1