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

EXAMPLES:
    # Bisect ERS.f45_g37.B1850C5 which got broken in the last 4 CIME commits 
    > cd <root-of-broken-cime-repo>
    > cime_bisect HEAD~4 ERS.f45_g37.B1850C5

    # Bisect ERS.f45_g37.B1850C5 which got broken in the last 4 MODEL commits 
    > cd <root-of-broken-model>
    > cime_bisect HEAD~4 ERS.f45_g37.B1850C5

    # Bisect ERS.f45_g37.B1850C5 which started to DIFF in the last 4 commits 
    > cd <root-of-broken-cime-repo>
    > cime_bisect HEAD~4 'ERS.f45_g37.B1850C5 -c -b master'

    # Bisect a build error for ERS.f45_g37.B1850C5 which got broken in the last 4 commits 
    > cd <root-of-broken-cime-repo>
    > cime_bisect HEAD~4 'ERS.f45_g37.B1850C5 --no-run'

    # Bisect two different failing tests which got broken in the last 4 commits 
    > 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)