|
Write a binary search function on Evergreen version history that simulates what git bisect does, but treat Evergreen versions as git commits if the build in a version for a particular variant has valid artifacts and binaries.
0. Ask the user for the branch to bisect as a cmdline arg and find the corresponding Evergreen projects for that branch (It should just all be "mongodb-mongo-" + branch name)
1. Count all commits in the branch and store them in memory up to lookbackDays,
2. update multiversion_setup to allow users to specific a variant on the command line which supersedes the --platform, --edition, and --architecture options. Code is here. The variant name gets used here
3. Find the middle Evergreen version
4. Set up the dev environment using setup-multiversion, optionally pip install buildscripts/dev-requirements.txt if there isn't an existing python virtualenv from Evergreen (which there isn't for commits older than a few months).
5. function to run a script that checks if the commit is good or bad ("git bisect run my_script arguments")
6. based on result of function in step 4, bisect to the right or left accordingly.
7. Tell the user that the problem is within a certain commit range, where the range is contains two consecutive Evergreen runs, with the earlier one passing and later one failing.
|