Commit Graph

54 Commits

Author SHA1 Message Date
Navin Chandra
f787770482 [py][java][rb][ci]: use pinned browsers in CI (#15987) 2025-07-02 16:25:13 +05:30
Alex Rodionov
212fc8be35 [rb] Upgrade to Ruby 3.2
- CRuby 3.1 is EOL
- JRuby 10 is the latest
- TruffleRuby 24.2 is the latest
2025-05-12 12:32:49 -07:00
titusfortner
23c766207f [build] skip running ruby lint in ci-ruby since there is a separate job for it run on every commit 2025-04-17 11:37:08 -07:00
titusfortner
5b518e22ee [build] ruby tests need to use Java 17 2025-03-17 08:47:49 -07:00
Viet Nguyen Duc
5fc1ec94cb [ci][rb] Add matrix.os to cache-key for filesystem consistency
Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
2025-02-20 12:05:03 +07:00
Selenium CI Bot
18ae989a6b [build] Prepare for release of Selenium 4.29.0 (#15274)
* Update pinned browser versions

* Update supported versions for Chrome DevTools

* Update selenium manager version

* Update authors file

* FIX CHANGELOGS BEFORE MERGING!

Update versions and change logs to release Selenium 4.29.0

* [create-pull-request] automated change

* Update CHANGELOG cross bindings

* Update CHANGELOG for new upstream changes

* Update CHANGELOG for a new change

* [rb] Disable provide response test for Firefox (#15295)

* [rb] Update rules ruby to latest version and module (#15282)

* [ci] Update setup-bazel v0.13.0

---------

Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
Co-authored-by: Selenium CI Bot <selenium-ci@users.noreply.github.com>
Co-authored-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
Co-authored-by: Augustin Gottlieb <33221555+aguspe@users.noreply.github.com>
2025-02-20 03:12:52 +07:00
Alex Rodionov
f05709eb99 [rb] Update JRuby and rules_ruby 2025-02-18 14:38:10 -08:00
Augustin Gottlieb
e4b1e4897f [rb] Update Jruby to version 9.4.9.0 (#14791)
* Update ruby version

* Update checksum

* Update Jruby version

* Update rubocop version

* Update MODULE.bazel

* Update Ruby and correct check sums

* Update all the places that used 9.4.8.0

* Add missing comma
2025-01-11 18:29:57 +01:00
Alex Rodionov
33c716986e [rb] Update minimum Ruby to 3.1 (#14685)
3.0 is EOL in Apr 2024
2024-10-31 12:27:50 -07:00
Alex Rodionov
fd5f54ebd7 [rb] Run remote tests on RBE (#13906) 2024-06-24 11:34:52 -07:00
titusfortner
7eaf154725 [build] explicitly do not set pin browsers on windows github runners 2024-06-16 13:07:19 -05:00
titusfortner
01fa154e2b [rb] use pinned browsers for tests on github runners 2024-06-16 09:03:49 -05:00
titusfortner
a9ea73a672 [ci] stop running safari tests in Ruby suite for now 2024-06-05 11:48:34 -05:00
Alex Rodionov
8688ad2d0d [rb] Fix Chromium tests on Windows
Apparently no-sandbox would keep zombie Chromium processes and would starve the resources. See https://github.com/SeleniumHQ/selenium/issues/5600.
2024-05-01 20:54:09 -07:00
Alex Rodionov
5f127db684 [ci] Disable Ruby tests for Chrome/Edge on Windows 2024-04-23 12:08:51 -07:00
Alex Rodionov
bd540f2c3e [rb] Generate per-browser test targets 2024-03-15 13:48:45 -07:00
titusfortner
562c3596fa [ci] test with latest version of Ruby 2024-01-21 09:16:58 -06:00
titusfortner
089094968e [build] restore ruby dependencies 2024-01-01 13:42:20 -06:00
titusfortner
28882f9590 [rb] run unit tests on latest version ruby 2023-12-26 11:34:59 -05:00
Alex Rodionov
06519c95ee [rb] Update rules_ruby to the latest version (#13235)
Notably, it now allows to read version from `.ruby-version` file and use
a more convenient `run_binary()` rule instead of a `genrule()`.

The commit also bumps supported Ruby versions on CI.
2023-12-04 10:38:59 -06:00
Titus Fortner
9b35af2814 Require Java 11 (#12843)
* [java] require Java 11

* [java] remove netty http client and use native java client by default

* [java] updated the list of exports

* [java] use the default http client in tests

* [java] removed --remote-allow-origins=* for the netty client

* [java] removed the asynchttpclient and htmlunit-driver dependencies

---------

Co-authored-by: Jörg Sautter <joerg.sautter@gmx.net>
2023-10-06 09:14:30 -05:00
titusfortner
cb5d98bbd7 [ci] update what ruby tests get run 2023-10-06 08:58:26 -05:00
Oscar Devora
e5182732e9 [rb] Add macos coverage to Ruby CI Github Action (#12556)
* Add macos coverage to Ruby CI (#12397)

* guard is not present in before all hook so do not set driver

* after hook still executes even when guard disposition of the test is skip so explicitly skip it too

---------

Co-authored-by: Titus Fortner <titusfortner@users.noreply.github.com>
Co-authored-by: titusfortner <titus.fortner@gmail.com>
2023-09-13 12:44:54 -05:00
Alex Rodionov
de7acb9099 [rb] Make //rb:lint a test target that auto-corrects files too 2023-05-04 13:16:34 -07:00
Alex Rodionov
cd3216e68d Upgrade minimum Ruby version to 3.0 since 2.7 is EOL 2023-04-28 11:58:04 -07:00
Alex Rodionov
36c788c465 Overhaul CI in GitHub Actions [dotnet][java][js][py][rb][rust]
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.
2023-01-13 09:37:00 -08:00
Alex Rodionov
7024fb8f41 Upgrade setup-bazel
Newer version should be more reliable and efficient with external-cache
2023-01-12 16:09:13 -08:00
Alex Rodionov
29949525e3 [rb] Split rb/BUILD into smaller packages
This fits more into Bazel approach because smaller packages with a
proper dependency tree would allow to use Bazel caching more
efficiently. For example, only few tests would be re-run considering
you ran all integration tests for Chrome before and only changed code
in `chrome/driver.rb`. This is because just a few tests depend on
`chrome/driver.rb`. Per-test file packages also allow us to use Bazel
flaky retry flags efficiently - previously it would re-run all the tests
when one of them fails.

This commit also moves certain files around to make Ruby codebase more
reasonable:
* CDP client code generator lives in the `rb/lib/selenium/devtools`
* Nightly version generator lives in a new `rb/lib/selenium/support`

Since now integration tests are being in parallel by default, few
changes had to be done to make support code more concurrency-safe.
Notably, Grid and Rack servers are being started on randomized ports.
Some other tests were adapted/guarded to work better when run in
parallel.

The test configuration is now controlled by a combination of
`--define <name>=<value>` flags, supporting `browser/remote/headless` as
names. See README.md changes for more details.
2023-01-12 11:18:25 -08:00
Alex Rodionov
80819a8efb Use p0deje/setup-bazel GitHub Action on CI
It provides cross-platform configuration of Bazel and fine-grained
caching for bazelisk, disk_cache, repository_cache and external
repositories resulting in faster CI builds.
2023-01-06 09:23:27 -08:00
titusfortner
ccf55fec19 [rb] unit test with latest version of ruby 2022-12-31 10:29:09 -06:00
George Adams
20aa83c43b Migrate setup-java action to use Temurin (#11464) 2022-12-22 10:42:15 +01:00
Alex Rodionov
887da781a3 Revert "Enable remote Bazel cache through Google Cloud Storage"
This reverts commit 87b4de808b.
2022-12-21 14:47:46 -08:00
Alex Rodionov
87b4de808b Enable remote Bazel cache through Google Cloud Storage
This commit lands a support for public read-only remote Bazel cache
stored on Google Cloud Storage at
https://storage.googleapis.com/seleniumhq-bazel-remote-cache. The
storage bucket is public so anyone on the internet can use it to speed
up building Selenium locally.

The cache is written on the trunk CI builds by specifying
--remote_upload_local_results=true in CI .bazelrc. Likewise, Selenium
committers can write to the cache by getting the JSON key and adding
the following to the .bazelrc.local:
build --remote_upload_local_results=true --google_credentials=<path-to-json-key>

For now, the bucket is stored in @p0deje personal Google cloud and we
should eventually move it SeleniumHQ account if/once we have it.
2022-12-14 06:34:31 -08:00
titusfortner
416d183251 [ci] run language tests from typical language tags 2022-12-01 10:06:13 -06:00
titusfortner
0831f5d7ce update all github actions to latest versions for consistency 2022-11-26 20:27:44 -06:00
Alex Rodionov
50974dfaa2 Run Edge tests for Ruby on Windows 2022-11-26 09:07:21 -08:00
Alex Rodionov
7024abb03a Run Firefox tests for Ruby on Windows 2022-11-26 09:07:21 -08:00
Alex Rodionov
db43c94f25 Run Chrome tests for Ruby on Windows 2022-11-26 09:07:21 -08:00
Alex Rodionov
e183ceb561 Run unit tests for Ruby on Windows 2022-11-26 09:07:21 -08:00
Alex Rodionov
4041b4d332 Make Bazel GitHub actions cross-platform
Refactores shared Bazel GitHub action to work both on Windows and Unix
operating systems. It also introduces a new action to share cache
between the workflow runs that works in both OSes too - though Windows
implementation is far less performant.
2022-11-26 09:07:21 -08:00
Alex Rodionov
e826612604 Simplify selection of Ruby version for CI 2022-11-26 09:07:21 -08:00
Alex Rodionov
8124086117 Support JRuby 9.4 in Ruby bindings 2022-11-23 17:36:12 -08:00
Alex Rodionov
04ede9e6f1 Add support for TruffleRuby 2022-11-11 13:32:42 -08:00
Alex Rodionov
5f4a05c714 Avoid Ruby installation on every CI build 2022-11-09 08:28:19 -08:00
Alex Rodionov
71545c92c6 Switch to our own hermetic Ruby rules for Bazel
Replaces https://github.com/bazelruby/rules_ruby with
https://github.com/p0deje/rules_ruby_simple that provide similar
functionality for building Ruby gems, running tests and other commands.
The main difference is that the new rules use fully hermetic Ruby
distribution which works on every major OS including Windows.
2022-11-09 08:28:19 -08:00
titusfortner
08dcad65da [rb] add initial support for selenium manager 2022-10-28 08:25:03 -05:00
Titus Fortner
d78c5e8c46 bazelisk is pre-installed on github runners (#11173) 2022-10-26 16:09:39 -05:00
titusfortner
29b015fdbb [rb] allow multiple attempts to CI for Ruby tests 2022-10-24 11:59:08 -05:00
Henrik Skupin
8aeb1e1290 Run fluxbox as window manager for jobs using Xvfb (#11025)
Use Fluxbox as window manager for browser tests using Xvfb
2022-09-25 18:43:18 -05:00
titusfortner
59c175d50a [build] make ruby and python use setup-firefox action 2022-09-13 10:41:47 -05:00