Add bisection state manager script #676
Open
+593
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
bisect.pythis python script is responsible for managing a repository bisection in a CI job. It is intended to be used in CI to keep track of a bisection process. This bisection manager orchestrates automated git bisections across CI/CD systems (Jenkins, GitHub Actions), manages bisection state, and generates comprehensive reports. By extracting the logic maintaining the binary search to a separate maintainable tool, we can eliminate much of that logic from the CI jobs themselves thus making this portable across CI systems.
This script runs the following commands:
The CI job in question would use the script like so
Throughout this process the json state file is updated and used to continue the bisection. Shown to work here:
https://ci.swift.org/view/xInfrastructure/job/wip-run-bisect/