diff options
Diffstat (limited to 'scripts/oe-build-perf-report')
-rwxr-xr-x | scripts/oe-build-perf-report | 28 |
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: |