cime_bisect
cime_bisect is a script in CIMEROOT/CIME/Tools.
$ ./cime_bisect --help
usage:
cime_bisect <testargs> <last-known-good-commit> [--bad=<bad>] [--verbose]
OR
cime_bisect --help
[1mEXAMPLES:[0m
[1;32m# Bisect ERS.f45_g37.B1850C5 which got broken in the last 4 CIME commits [0m
> cd <root-of-broken-cime-repo>
> cime_bisect HEAD~4 ERS.f45_g37.B1850C5
[1;32m# Bisect ERS.f45_g37.B1850C5 which got broken in the last 4 MODEL commits [0m
> cd <root-of-broken-model>
> cime_bisect HEAD~4 ERS.f45_g37.B1850C5
[1;32m# Bisect ERS.f45_g37.B1850C5 which started to DIFF in the last 4 commits [0m
> cd <root-of-broken-cime-repo>
> cime_bisect HEAD~4 'ERS.f45_g37.B1850C5 -c -b master'
[1;32m# Bisect a build error for ERS.f45_g37.B1850C5 which got broken in the last 4 commits [0m
> cd <root-of-broken-cime-repo>
> cime_bisect HEAD~4 'ERS.f45_g37.B1850C5 --no-run'
[1;32m# Bisect two different failing tests which got broken in the last 4 commits [0m
> cd <root-of-broken-cime-repo>
> cime_bisect HEAD~4 'ERS.f45_g37.B1850C5 --no-run' 'SMS.f45_g37.F'
A script to help track down the commit that caused tests to fail. This script
can do bisections for both cime and the model that houses it, just be sure you
run this script from the root of the repo you want to bisect. NOTE: this tool
will only work for models that use git and, for bisecting CIME, bring in CIME
via submodule or clone.
positional arguments:
good Name of most recent known good commit.
testargs String to pass to create_test. Combine with single
quotes if it includes multiple args. (default: None)
options:
-h, --help show this help message and exit
-B BAD, --bad BAD Name of bad commit, default is current HEAD. (default:
HEAD)
-a, --all-commits Test all commits, not just merges (default: False)
-S SCRIPT, --script SCRIPT
Use your own custom script instead (default: None)
Logging options:
-d, --debug Print debug information (very verbose) to file
/home/runner/work/cime/cime/CIME/Tools/cime_bisect.log
(default: False)
-v, --verbose Add additional context (time and file) to log messages
(default: False)
-s, --silent Print only warnings and error messages (default:
False)