New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Overhaul CI [dotnet][java][js][py][rb][rust] #11544
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a minor comment, but everything else looks good. Thank you, @p0deje!
Codecov ReportBase: 54.55% // Head: 54.55% // No change to project coverage 👍
Additional details and impacted files@@ Coverage Diff @@
## trunk #11544 +/- ##
=======================================
Coverage 54.55% 54.55%
=======================================
Files 85 85
Lines 5629 5629
Branches 243 243
=======================================
Hits 3071 3071
Misses 2315 2315
Partials 243 243 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
This commit introduces few major changes to the Selenium CI, overhauling the current implementation to make it a bit more usable and maintainable. 1. Introduces high-level orchestrating "CI" workflow that is run on every push to the main branch, every 12 hours, every pull request, and manually. This workflow checks which bindings are affected by the pushed changes and calls individual CI workflows, presenting all of the results on a single page - https://github.com/SeleniumHQ/selenium/actions/workflows/ci.yml. 2. Reworks every "CI - <Bindings>" workflow to be callable from other workflows or run manually. The former is important for the "CI" workflow, the latter is matter of convenience so that individual bindings CI workflow can be run. 3. Individual bindings CI workflow are also implemented in a similar manner with the following pipeline: Build -> Documentation / Lint / Unit Tests -> Integration Tests This allows to better balance the load across the CI runners queue, preventing an immediate burst of queued runs. 4. Almost every CI pipeline step is implemented via a callable bazel.yml workflow. It is responsible for setting up the whole environment (browsers, Bazel caches) and greatly simplifies the individual bindings workflow. The only exceptions not using it are few JavaScript/Python tasks not migrated to Bazel and Rust pipeline. 6. Removes unnecessary installation of JDK because it's already taken care of by Bazel. 7. Allows to start interacting SSH session inside CI upon failure. This can be done by re-running a failed build with "Enable debug logging" on. 8. Allows to force-run CI on pull requests if the title includes [<bindings>] text. We could also fetch commits on this PR, but it needs extra code and can be done later.
I think that the Pull Request #11546 would solve this issue as the "CI - Rust" action failed when it was first introduced. |
This PR introduces few major changes to the Selenium CI, overhauling
the current implementation to make it a bit more usable and maintainable.
"CI - <Bindings>"
workflow to be callable from other workflows or run manually. The former is important for the "CI" workflow, the latter is matter of convenience so that individual bindings CI workflow can be run.[<bindings>]
text. We could also fetch commits on this PR, but it needs extra code and can be done later.