From: Markus Lehtonen <markus.lehtonen@linux.intel.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 11/19] oe-build-perf-test: pre-check Git repo when using --commit-results
Date: Wed, 24 Aug 2016 10:13:01 +0300 [thread overview]
Message-ID: <1472022789-13028-12-git-send-email-markus.lehtonen@linux.intel.com> (raw)
In-Reply-To: <1472022789-13028-1-git-send-email-markus.lehtonen@linux.intel.com>
Do a pre-check on the path that is specified with --commit-results
before running any tests. The script will create and/or initialize a
fresh Git repository if the given directory does not exist or if it is
an empty directory. It fails if it finds a non-empty directory that is
not a Git repository.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
---
scripts/oe-build-perf-test | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/scripts/oe-build-perf-test b/scripts/oe-build-perf-test
index 390e4c9..437611c 100755
--- a/scripts/oe-build-perf-test
+++ b/scripts/oe-build-perf-test
@@ -31,6 +31,7 @@ import oeqa.buildperf
from oeqa.buildperf import (BuildPerfTestLoader, BuildPerfTestResult,
BuildPerfTestRunner, KernelDropCaches)
from oeqa.utils.commands import runCmd
+from oeqa.utils.git import GitRepo, GitError
# Set-up logging
@@ -68,7 +69,30 @@ def pre_run_sanity_check():
if ret.status:
log.error("bitbake command not found")
return False
+ return True
+def init_git_repo(path):
+ """Check/create Git repository where to store results"""
+ path = os.path.abspath(path)
+ if os.path.isfile(path):
+ log.error("Invalid Git repo %s: path exists but is not a directory", path)
+ return False
+ if not os.path.isdir(path):
+ try:
+ os.mkdir(path)
+ except (FileNotFoundError, PermissionError) as err:
+ log.error("Failed to mkdir %s: %s", path, err)
+ return False
+ if not os.listdir(path):
+ log.info("Initializing a new Git repo at %s", path)
+ GitRepo.init(path)
+ try:
+ GitRepo(path, is_topdir=True)
+ except GitError:
+ log.error("No Git repository but a non-empty directory found at %s.\n"
+ "Please specify a Git repository, an empty directory or "
+ "a non-existing directory", path)
+ return False
return True
@@ -137,6 +161,9 @@ def main(argv=None):
if not pre_run_sanity_check():
return 1
+ if args.commit_results:
+ if not init_git_repo(args.commit_results):
+ return 1
# Check our capability to drop caches and ask pass if needed
KernelDropCaches.check()
--
2.6.6
next prev parent reply other threads:[~2016-08-24 7:13 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-24 7:12 [PATCH 00/19] oe-build-pef-test: support saving results in a Git repo Markus Lehtonen
2016-08-24 7:12 ` [PATCH 01/19] oe-build-perf-test: implement --run-tests option Markus Lehtonen
2016-08-24 7:12 ` [PATCH 02/19] oe-build-perf-test: use absolute paths in cmdline args Markus Lehtonen
2016-08-24 7:12 ` [PATCH 03/19] oeqa.utils.git: support git commands with updated env Markus Lehtonen
2016-08-24 7:12 ` [PATCH 04/19] oeqa.utils.git: introduce GitRepo.rev_parse() Markus Lehtonen
2016-08-24 7:12 ` [PATCH 05/19] oeqa.utils.git: implement GitRepo.get_current_branch() Markus Lehtonen
2016-08-24 7:12 ` [PATCH 06/19] oeqa.utils.git.GitRepo: new arg to require topdir Markus Lehtonen
2016-08-24 7:12 ` [PATCH 07/19] oeqa.buildperf: use term commit instead of revision Markus Lehtonen
2016-08-24 7:12 ` [PATCH 08/19] oe-build-perf-test: support committing results data to Git Markus Lehtonen
2016-08-24 7:12 ` [PATCH 09/19] oe-build-perf-test: implement --commit-results-branch Markus Lehtonen
2016-08-24 7:13 ` [PATCH 10/19] oeqa.utils.git: implement init() method Markus Lehtonen
2016-08-24 7:13 ` Markus Lehtonen [this message]
2016-08-24 7:13 ` [PATCH 12/19] oe-build-perf-test: tag results committed to Git Markus Lehtonen
2016-08-24 7:13 ` [PATCH 13/19] oe-build-perf-test: new {tag_num} keyword for --commit-results-tag Markus Lehtonen
2016-08-24 7:13 ` [PATCH 14/19] oeqa.buildperf: add git commit count to result data Markus Lehtonen
2016-08-24 7:13 ` [PATCH 15/19] oe-build-perf-test: add {git_commit_count} keyword for --commit-results-tag Markus Lehtonen
2016-08-24 7:13 ` [PATCH 16/19] build-perf-test-wrapper.sh: parse args with getopts Markus Lehtonen
2016-08-24 7:13 ` [PATCH 17/19] build-perf-test-wrapper.sh: allow saving results in Git Markus Lehtonen
2016-08-24 7:13 ` [PATCH 18/19] build-perf-test-wrapper.sh: make archive dir configurable Markus Lehtonen
2016-08-24 7:13 ` [PATCH 19/19] build-perf-test-wrapper.sh: make workdir configurable Markus Lehtonen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1472022789-13028-12-git-send-email-markus.lehtonen@linux.intel.com \
--to=markus.lehtonen@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox