]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
oe-build-perf-test: tag results committed to Git
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 16 Aug 2016 12:56:56 +0000 (15:56 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 25 Aug 2016 22:00:03 +0000 (23:00 +0100)
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>
meta/lib/oeqa/buildperf/base.py
scripts/oe-build-perf-test

index 119e6edf18737f022f836e5bf4ddb8943dac61c8..a3cd3f3155cd78521f17b07883daa168a41b0b4d 100644 (file)
@@ -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)
index 437611c8563cf4b51d2a6a642ccc15588e1c9558..1ed5bdbf5eadc114f7e88eae22f24b31d908c5e0 100755 (executable)
@@ -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