Skip to content
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

Merged
merged 4 commits into from Jan 13, 2023
Merged

Overhaul CI [dotnet][java][js][py][rb][rust] #11544

merged 4 commits into from Jan 13, 2023

Conversation

p0deje
Copy link
Member

@p0deje p0deje commented Jan 12, 2023

This PR 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.
  5. Removes unnecessary installation of JDK because it's already taken care of by Bazel.
  6. 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.
  7. 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.

Copy link
Member

@AutomatedTester AutomatedTester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member

@diemol diemol left a 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!

.github/workflows/bazel.yml Show resolved Hide resolved
@p0deje p0deje changed the title Overhaul CI Overhaul CI [dotnet][java][js][py][rb][rust] Jan 13, 2023
@codecov-commenter
Copy link

codecov-commenter commented Jan 13, 2023

Codecov Report

Base: 54.55% // Head: 54.55% // No change to project coverage 👍

Coverage data is based on head (1387bad) compared to base (bb34eb8).
Patch has no changes to coverable lines.

❗ Current head 1387bad differs from pull request most recent head d5c2fd5. Consider uploading reports for the commit d5c2fd5 to get more accurate results

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.
📢 Do you have feedback about the report comment? Let us know in this issue.

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.
@ollie-iterators
Copy link

I think that the Pull Request #11546 would solve this issue as the "CI - Rust" action failed when it was first introduced.

2023-01-13_11-10-07

@p0deje p0deje marked this pull request as ready for review January 13, 2023 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants