summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/oe-build-perf-test104
1 files changed, 0 insertions, 104 deletions
diff --git a/scripts/oe-build-perf-test b/scripts/oe-build-perf-test
index f3867abfb9..8950c32004 100755
--- a/scripts/oe-build-perf-test
+++ b/scripts/oe-build-perf-test
@@ -33,7 +33,6 @@ import oeqa.buildperf
33from oeqa.buildperf import (BuildPerfTestLoader, BuildPerfTestResult, 33from oeqa.buildperf import (BuildPerfTestLoader, BuildPerfTestResult,
34 BuildPerfTestRunner, KernelDropCaches) 34 BuildPerfTestRunner, KernelDropCaches)
35from oeqa.utils.commands import runCmd 35from oeqa.utils.commands import runCmd
36from oeqa.utils.git import GitRepo, GitError
37from oeqa.utils.metadata import metadata_from_bb, write_metadata_file 36from oeqa.utils.metadata import metadata_from_bb, write_metadata_file
38 37
39 38
@@ -74,31 +73,6 @@ def pre_run_sanity_check():
74 return False 73 return False
75 return True 74 return True
76 75
77def init_git_repo(path):
78 """Check/create Git repository where to store results"""
79 path = os.path.abspath(path)
80 if os.path.isfile(path):
81 log.error("Invalid Git repo %s: path exists but is not a directory", path)
82 return False
83 if not os.path.isdir(path):
84 try:
85 os.mkdir(path)
86 except (FileNotFoundError, PermissionError) as err:
87 log.error("Failed to mkdir %s: %s", path, err)
88 return False
89 if not os.listdir(path):
90 log.info("Initializing a new Git repo at %s", path)
91 GitRepo.init(path)
92 try:
93 GitRepo(path, is_topdir=True)
94 except GitError:
95 log.error("No Git repository but a non-empty directory found at %s.\n"
96 "Please specify a Git repository, an empty directory or "
97 "a non-existing directory", path)
98 return False
99 return True
100
101
102def setup_file_logging(log_file): 76def setup_file_logging(log_file):
103 """Setup loggin to file""" 77 """Setup loggin to file"""
104 log_dir = os.path.dirname(log_file) 78 log_dir = os.path.dirname(log_file)
@@ -118,68 +92,6 @@ def archive_build_conf(out_dir):
118 shutil.copytree(src_dir, tgt_dir) 92 shutil.copytree(src_dir, tgt_dir)
119 93
120 94
121def git_commit_results(repo_dir, results_dir, branch, tag, metadata):
122 """Commit results into a Git repository"""
123 repo = GitRepo(repo_dir, is_topdir=True)
124 distro_branch = metadata['layers']['meta']['branch']
125 distro_commit = metadata['layers']['meta']['commit']
126 distro_commit_count = metadata['layers']['meta']['commit_count']
127
128 # Replace keywords
129 branch = branch.format(git_branch=distro_branch,
130 tester_host=metadata['hostname'])
131
132 log.info("Committing test results into %s %s", repo_dir, branch)
133 tmp_index = os.path.join(repo_dir, '.git', 'index.oe-build-perf')
134 try:
135 # Create new commit object from the new results
136 env_update = {'GIT_INDEX_FILE': tmp_index,
137 'GIT_WORK_TREE': results_dir}
138 repo.run_cmd('add .', env_update)
139 tree = repo.run_cmd('write-tree', env_update)
140 parent = repo.rev_parse(branch)
141 msg = "Results of {}:{}\n".format(distro_branch, distro_commit)
142 git_cmd = ['commit-tree', tree, '-m', msg]
143 if parent:
144 git_cmd += ['-p', parent]
145 commit = repo.run_cmd(git_cmd, env_update)
146
147 # Update branch head
148 git_cmd = ['update-ref', 'refs/heads/' + branch, commit]
149 if parent:
150 git_cmd.append(parent)
151 repo.run_cmd(git_cmd)
152
153 # Update current HEAD, if we're on branch 'branch'
154 if repo.get_current_branch() == branch:
155 log.info("Updating %s HEAD to latest commit", repo_dir)
156 repo.run_cmd('reset --hard')
157
158 # Create (annotated) tag
159 if tag:
160 # Find tags matching the pattern
161 tag_keywords = dict(git_branch=distro_branch,
162 git_commit=distro_commit,
163 git_commit_count=distro_commit_count,
164 tester_host=metadata['hostname'],
165 tag_num='[0-9]{1,5}')
166 tag_re = re.compile(tag.format(**tag_keywords) + '$')
167 tag_keywords['tag_num'] = 0
168 for existing_tag in repo.run_cmd('tag').splitlines():
169 if tag_re.match(existing_tag):
170 tag_keywords['tag_num'] += 1
171
172 tag = tag.format(**tag_keywords)
173 msg = "Test run #{} of {}:{}\n".format(tag_keywords['tag_num'],
174 distro_branch,
175 distro_commit)
176 repo.run_cmd(['tag', '-a', '-m', msg, tag, commit])
177
178 finally:
179 if os.path.exists(tmp_index):
180 os.unlink(tmp_index)
181
182
183def update_globalres_file(result_obj, filename, metadata): 95def update_globalres_file(result_obj, filename, metadata):
184 """Write results to globalres csv file""" 96 """Write results to globalres csv file"""
185 # Map test names to time and size columns in globalres 97 # Map test names to time and size columns in globalres
@@ -235,15 +147,6 @@ def parse_args(argv):
235 help="Log file of this script") 147 help="Log file of this script")
236 parser.add_argument('--run-tests', nargs='+', metavar='TEST', 148 parser.add_argument('--run-tests', nargs='+', metavar='TEST',
237 help="List of tests to run") 149 help="List of tests to run")
238 parser.add_argument('--commit-results', metavar='GIT_DIR',
239 type=os.path.abspath,
240 help="Commit result data to a (local) git repository")
241 parser.add_argument('--commit-results-branch', metavar='BRANCH',
242 default="{git_branch}",
243 help="Commit results to branch BRANCH.")
244 parser.add_argument('--commit-results-tag', metavar='TAG',
245 default="{git_branch}/{git_commit_count}-g{git_commit}/{tag_num}",
246 help="Tag results commit with TAG.")
247 150
248 return parser.parse_args(argv) 151 return parser.parse_args(argv)
249 152
@@ -266,9 +169,6 @@ def main(argv=None):
266 169
267 if not pre_run_sanity_check(): 170 if not pre_run_sanity_check():
268 return 1 171 return 1
269 if args.commit_results:
270 if not init_git_repo(args.commit_results):
271 return 1
272 172
273 # Check our capability to drop caches and ask pass if needed 173 # Check our capability to drop caches and ask pass if needed
274 KernelDropCaches.check() 174 KernelDropCaches.check()
@@ -311,10 +211,6 @@ def main(argv=None):
311 result.write_results_json() 211 result.write_results_json()
312 if args.globalres_file: 212 if args.globalres_file:
313 update_globalres_file(result, args.globalres_file, metadata) 213 update_globalres_file(result, args.globalres_file, metadata)
314 if args.commit_results:
315 git_commit_results(args.commit_results, out_dir,
316 args.commit_results_branch, args.commit_results_tag,
317 metadata)
318 if result.wasSuccessful(): 214 if result.wasSuccessful():
319 return 0 215 return 0
320 216