summaryrefslogtreecommitdiffstats
path: root/scripts/oe-build-perf-report
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/oe-build-perf-report')
-rwxr-xr-xscripts/oe-build-perf-report28
1 files changed, 18 insertions, 10 deletions
diff --git a/scripts/oe-build-perf-report b/scripts/oe-build-perf-report
index 21bde7e156..7812ea4540 100755
--- a/scripts/oe-build-perf-report
+++ b/scripts/oe-build-perf-report
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
#
# Examine build performance test results
#
@@ -353,7 +353,7 @@ def print_html_report(data, id_comp, buildstats):
bs_key = test + '.' + meas
rev = str(metadata['commit_num']['value'])
comp_rev = str(metadata['commit_num']['value_old'])
- if (rev in buildstats and bs_key in buildstats[rev] and
+ if (buildstats and rev in buildstats and bs_key in buildstats[rev] and
comp_rev in buildstats and bs_key in buildstats[comp_rev]):
new_meas['buildstats'] = BSSummary(buildstats[comp_rev][bs_key],
buildstats[rev][bs_key])
@@ -372,7 +372,7 @@ def print_html_report(data, id_comp, buildstats):
chart_opts=chart_opts))
-def get_buildstats(repo, notes_ref, revs, outdir=None):
+def get_buildstats(repo, notes_ref, notes_ref2, revs, outdir=None):
"""Get the buildstats from git notes"""
full_ref = 'refs/notes/' + notes_ref
if not repo.rev_parse(full_ref):
@@ -391,8 +391,13 @@ def get_buildstats(repo, notes_ref, revs, outdir=None):
for tag in rev.tags:
log.debug(' %s', tag)
try:
- bs_all = json.loads(repo.run_cmd(['notes', '--ref', notes_ref,
- 'show', tag + '^0']))
+ try:
+ bs_all = json.loads(repo.run_cmd(['notes', '--ref', notes_ref, 'show', tag + '^0']))
+ except GitError:
+ if notes_ref2:
+ bs_all = json.loads(repo.run_cmd(['notes', '--ref', notes_ref2, 'show', tag + '^0']))
+ else:
+ raise
except GitError:
log.warning("Buildstats not found for %s", tag)
bs_all = {}
@@ -504,7 +509,7 @@ def main(argv=None):
revs = gitarchive.get_test_revs(log, repo, args.tag_name, hostname=args.hostname,
branch=args.branch, machine=args.machine)
- if args.branch2:
+ if args.branch2 and args.branch2 != args.branch:
revs2 = gitarchive.get_test_revs(log, repo, args.tag_name, hostname=args.hostname,
branch=args.branch2, machine=args.machine)
if not len(revs2):
@@ -528,7 +533,7 @@ def main(argv=None):
else:
index1 = len(revs) - 1
- if args.branch2:
+ if args.branch2 and args.branch2 != args.branch:
revs2.append(revs[index1])
index1 = len(revs2) - 1
revs = revs2
@@ -589,9 +594,12 @@ def main(argv=None):
buildstats = None
if args.dump_buildstats or args.html:
outdir = 'oe-build-perf-buildstats' if args.dump_buildstats else None
- notes_ref = 'buildstats/{}/{}/{}'.format(args.hostname, args.branch,
- args.machine)
- buildstats = get_buildstats(repo, notes_ref, [rev_l, rev_r], outdir)
+ notes_ref = 'buildstats/{}/{}/{}'.format(args.hostname, args.branch, args.machine)
+ notes_ref2 = None
+ if args.branch2:
+ notes_ref = 'buildstats/{}/{}/{}'.format(args.hostname, args.branch2, args.machine)
+ notes_ref2 = 'buildstats/{}/{}/{}'.format(args.hostname, args.branch, args.machine)
+ buildstats = get_buildstats(repo, notes_ref, notes_ref2, [rev_l, rev_r], outdir)
# Print report
if not args.html: