From 743abd953c137f8170b1285d1025c2f4389bf65d Mon Sep 17 00:00:00 2001 From: Guillaume Tucker Date: Mon, 2 Oct 2023 22:45:03 +0200 Subject: [PATCH] WIP filter bisection by git tree --- app/utils/bisect/test.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/app/utils/bisect/test.py b/app/utils/bisect/test.py index d4d886232..43be3bd7c 100644 --- a/app/utils/bisect/test.py +++ b/app/utils/bisect/test.py @@ -1,4 +1,4 @@ -# Copyright (C) Collabora Limited 2019 +# Copyright (C) Collabora Limited 2019, 2023 # Author: Guillaume Tucker # # This program is free software; you can redistribute it and/or modify it under @@ -52,6 +52,18 @@ def _shrink_regressions(regressions_list): return rlist[:3] +def _filter_regressions_by_tree(regressions, trees): + print("FILTER TREES") + filtered = {} + for plan, regs in regressions.iteritems(): + filtered_regs = [ + reg for reg in regs if reg.job in trees + ] + if filtered_regs: + filtered[plan] = filtered_regs + return filtered + + def _create_bisection(regr, db): regr_data = regr[models.REGRESSIONS_KEY] good, bad = (regr_data[r] for r in (0, -1)) @@ -146,6 +158,12 @@ def trigger_bisections(job, branch, kernel, plan, """ db = utils.db.get_db_connection(db_options) all_regressions = _find_regressions(job, branch, kernel, plan, db) + print("ALL REGRESSIONS:", all_regressions) + trees = jenkins_options.get('bisection-git-trees') + print("TREES", trees) + if trees: + all_regressions = _filter_regressions_by_tree(all_regressions, trees) + print("FILTERED REGRESSIONS:", all_regressions) shrunk_regressions = { key: _shrink_regressions(regr_list) for key, regr_list in all_regressions.iteritems()