diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index ef8aa1e173f1e..9999a6d905124 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -57,7 +57,7 @@ jobs: SEL_M2_PASS: ${{ secrets.SEL_M2_PASS }} steps: - name: Checkout source tree - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Free space if: inputs.os != 'windows' run: ./scripts/github-actions/free-disk-space.sh @@ -119,6 +119,9 @@ jobs: uses: browser-actions/setup-edge@latest with: edge-version: ${{ inputs.browser-version || 'stable' }} + - name: Setup Safari + if: inputs.browser == 'safari' + run: sudo safaridriver --enable - name: Run Bazel run: ${{ inputs.run }} - name: Start SSH session diff --git a/.github/workflows/build-selenium-manager.yml b/.github/workflows/build-selenium-manager.yml index e24f73cbb1a2b..92880db927845 100644 --- a/.github/workflows/build-selenium-manager.yml +++ b/.github/workflows/build-selenium-manager.yml @@ -10,7 +10,7 @@ jobs: RUSTFLAGS: '-Ctarget-feature=+crt-static' steps: - name: "Checkout project" - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: "Update Rust" run: | rustup update @@ -31,11 +31,9 @@ jobs: linux64: name: "[Linux x64] Build selenium-manager" runs-on: ubuntu-latest - env: - RUSTFLAGS: '-Ctarget-feature=-crt-static' steps: - name: "Checkout project" - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: "Update Rust" run: | rustup update @@ -43,11 +41,11 @@ jobs: - name: "Install cross" run: | cargo install cross --git https://github.com/cross-rs/cross + cross -V - name: "Build release" run: | cd rust - rustup target add x86_64-unknown-linux-musl - cross build --release --target x86_64-unknown-linux-musl + cross build --target x86_64-unknown-linux-musl --release - name: "Tar binary (to keep executable permission)" run: | cd rust/target/x86_64-unknown-linux-musl/release @@ -66,7 +64,7 @@ jobs: RUSTFLAGS: '-Ctarget-feature=+crt-static' steps: - name: "Checkout project" - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: "Update Rust" run: | rustup update diff --git a/.github/workflows/ci-javascript.yml b/.github/workflows/ci-javascript.yml index c320447f3c20a..384de680d1578 100644 --- a/.github/workflows/ci-javascript.yml +++ b/.github/workflows/ci-javascript.yml @@ -53,7 +53,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout source tree - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v3 with: diff --git a/.github/workflows/ci-python.yml b/.github/workflows/ci-python.yml index 613d4aa4a8192..5d09c6d971136 100644 --- a/.github/workflows/ci-python.yml +++ b/.github/workflows/ci-python.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout source tree - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: @@ -39,7 +39,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout source tree - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: @@ -61,7 +61,7 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout source tree - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Python 3.8 uses: actions/setup-python@v4 with: diff --git a/.github/workflows/ci-rbe.yml b/.github/workflows/ci-rbe.yml index 4f940f9020363..881f67492d254 100644 --- a/.github/workflows/ci-rbe.yml +++ b/.github/workflows/ci-rbe.yml @@ -8,6 +8,14 @@ on: workflow_dispatch: jobs: + format: + name: Format + uses: ./.github/workflows/bazel.yml + with: + name: Check format script run + cache-key: rbe + ruby-version: jruby-9.4.2.0 + run: ./scripts/github-actions/check-format.sh test: name: Test uses: ./.github/workflows/bazel.yml diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml index 5a09e011e4631..80ced414f5fef 100644 --- a/.github/workflows/ci-ruby.yml +++ b/.github/workflows/ci-ruby.yml @@ -45,6 +45,8 @@ jobs: os: windows - ruby-version: 3.2.0 os: ubuntu + - ruby-version: 3.2.0 + os: macos - ruby-version: jruby-9.4.0.0 os: ubuntu - ruby-version: truffleruby-22.3.0 @@ -67,12 +69,20 @@ jobs: - chrome - edge - firefox + - safari os: - ubuntu - windows + - macos exclude: - browser: edge os: ubuntu + - browser: edge + os: macos + - browser: safari + os: ubuntu + - browser: safari + os: windows with: name: Local Tests (${{ matrix.browser }}, ${{ matrix.os }}) browser: ${{ matrix.browser }} @@ -96,12 +106,20 @@ jobs: - chrome - edge - firefox + - safari os: - ubuntu - windows + - macos exclude: - browser: edge os: ubuntu + - browser: edge + os: macos + - browser: safari + os: ubuntu + - browser: safari + os: windows with: name: Remote Tests (${{ matrix.browser }}, ${{ matrix.os }}) browser: ${{ matrix.browser }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 571d0930d2258..9a20e2719d5dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: targets: ${{ steps.check-targets.outputs.bazel-targets }} steps: - name: Checkout source tree - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 50 - name: Setup Bazel diff --git a/.github/workflows/label-commenter.yml b/.github/workflows/label-commenter.yml index 576e6f9e58896..08861192ac08c 100644 --- a/.github/workflows/label-commenter.yml +++ b/.github/workflows/label-commenter.yml @@ -13,6 +13,6 @@ jobs: comment: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Label Commenter uses: peaceiris/actions-label-commenter@v1 diff --git a/.github/workflows/mirror-selenium-releases.yml b/.github/workflows/mirror-selenium-releases.yml index ccee9522e5d0a..0c79cd1e4b5c4 100644 --- a/.github/workflows/mirror-selenium-releases.yml +++ b/.github/workflows/mirror-selenium-releases.yml @@ -9,7 +9,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/should-workflow-run.yml b/.github/workflows/should-workflow-run.yml index 0766cd17bc14e..ce540e5df5001 100644 --- a/.github/workflows/should-workflow-run.yml +++ b/.github/workflows/should-workflow-run.yml @@ -25,7 +25,7 @@ jobs: result: ${{ steps.check-bazel-target-prefix.outputs.run-workflow }} steps: - name: Checkout source tree - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 50 - name: Setup Bazel diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a7c9e662addd0..aa82517e05b5e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -319,3 +319,14 @@ Selenium contributors frequent the `#selenium` channel on [`irc.freenode.org`](https://webchat.freenode.net/). You can also join the [`selenium-developers@` mailing list](https://groups.google.com/forum/#!forum/selenium-developers). Check https://selenium.dev/support/ for a complete list of options to communicate. + +## Using the EngFlow RBE + +To access the EngFlow RBE, a developer needs to be granted access to our project +container repository. Once that has been done, then any bazel command can be run +remotely by using `--config=remote`. For example: `bazel build --config=remote +grid` or `bazel test --config=remote java/test/...` + +When you run a remote build, one of the first lines of output from Bazel will +include a link to the EngFlow UI so you can track the progress of the build and +gather information about the efficiency of the build. diff --git a/Rakefile b/Rakefile index cede1c68beb07..6a26ae038720a 100644 --- a/Rakefile +++ b/Rakefile @@ -51,11 +51,11 @@ $DEBUG = true if ENV['debug'] == 'true' verbose($DEBUG) def release_version - '4.12' + '4.13' end def version - "#{release_version}.0-SNAPSHOT" + "#{release_version}.0" end # The build system used by webdriver is layered on top of rake, and we call it @@ -98,9 +98,9 @@ task '//java/test/org/openqa/selenium/environment/webserver:webserver:uber' => [ JAVA_RELEASE_TARGETS = %w[ //java/src/org/openqa/selenium/chrome:chrome.publish //java/src/org/openqa/selenium/chromium:chromium.publish - //java/src/org/openqa/selenium/devtools/v114:v114.publish //java/src/org/openqa/selenium/devtools/v115:v115.publish //java/src/org/openqa/selenium/devtools/v116:v116.publish + //java/src/org/openqa/selenium/devtools/v117:v117.publish //java/src/org/openqa/selenium/devtools/v85:v85.publish //java/src/org/openqa/selenium/edge:edge.publish //java/src/org/openqa/selenium/firefox:firefox.publish @@ -345,11 +345,11 @@ task 'prep-release-zip': [ mkdir_p 'build/dist' File.delete - cp Rake::Task['//java/src/org/openqa/selenium/grid:server-zip'].out, "build/dist/selenium-server-#{version}.zip", preserve: false + cp "bazel-bin/java/src/org/openqa/selenium/grid/server-zip.zip", "build/dist/selenium-server-#{version}.zip", preserve: false chmod 0666, "build/dist/selenium-server-#{version}.zip" - cp Rake::Task['//java/src/org/openqa/selenium:client-zip'].out, "build/dist/selenium-java-#{version}.zip", preserve: false + cp "bazel-bin/java/src/org/openqa/selenium/client-zip.zip", "build/dist/selenium-java-#{version}.zip", preserve: false chmod 0666, "build/dist/selenium-java-#{version}.zip" - cp Rake::Task['//java/src/org/openqa/selenium/grid:executable-grid'].out, "build/dist/selenium-server-#{version}.jar", preserve: false + cp "bazel-bin/java/src/org/openqa/selenium/grid/selenium", "build/dist/selenium-server-#{version}.jar", preserve: false chmod 0666, "build/dist/selenium-server-#{version}.jar" end diff --git a/WORKSPACE b/WORKSPACE index cedf3a9abbbd0..40f16067d43c4 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -20,6 +20,7 @@ load("@apple_rules_lint//lint:setup.bzl", "lint_setup") # Add your linters here. lint_setup({ "java-spotbugs": "//java:spotbugs-config", + "rust-rustfmt": "//rust:enable-rustfmt", }) http_archive( @@ -37,9 +38,9 @@ bazel_skylib_workspace() http_archive( name = "rules_python", - sha256 = "0a8003b044294d7840ac7d9d73eef05d6ceb682d7516781a4ec62eeb34702578", - strip_prefix = "rules_python-0.24.0", - url = "https://github.com/bazelbuild/rules_python/releases/download/0.24.0/rules_python-0.24.0.tar.gz", + sha256 = "5868e73107a8e85d8f323806e60cad7283f34b32163ea6ff1020cf27abef6036", + strip_prefix = "rules_python-0.25.0", + url = "https://github.com/bazelbuild/rules_python/releases/download/0.25.0/rules_python-0.25.0.tar.gz", ) load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_multi_toolchains") diff --git a/common/browsers.bzl b/common/browsers.bzl index e9ed64deba658..0d32b5cafc67d 100644 --- a/common/browsers.bzl +++ b/common/browsers.bzl @@ -62,3 +62,25 @@ firefox_data = select({ ], "//conditions:default": [], }) + geckodriver_data + +firefox_beta_data = select({ + "@selenium//common:use_pinned_linux_firefox": [ + "@linux_beta_firefox//:files", + "@linux_beta_firefox//:firefox/firefox", + ], + "@selenium//common:use_pinned_macos_firefox": [ + "@mac_beta_firefox//:Firefox.app", + ], + "//conditions:default": [], +}) + geckodriver_data + +firefox_dev_data = select({ + "@selenium//common:use_pinned_linux_firefox": [ + "@linux_dev_firefox//:files", + "@linux_dev_firefox//:firefox/firefox", + ], + "@selenium//common:use_pinned_macos_firefox": [ + "@mac_dev_firefox//:Firefox.app", + ], + "//conditions:default": [], +}) + geckodriver_data diff --git a/common/devtools/chromium/v114/BUILD.bazel b/common/devtools/chromium/v117/BUILD.bazel similarity index 100% rename from common/devtools/chromium/v114/BUILD.bazel rename to common/devtools/chromium/v117/BUILD.bazel diff --git a/common/devtools/chromium/v114/browser_protocol.pdl b/common/devtools/chromium/v117/browser_protocol.pdl similarity index 95% rename from common/devtools/chromium/v114/browser_protocol.pdl rename to common/devtools/chromium/v117/browser_protocol.pdl index 17c0dd3b7f21d..a2d52be0a8702 100644 --- a/common/devtools/chromium/v114/browser_protocol.pdl +++ b/common/devtools/chromium/v117/browser_protocol.pdl @@ -72,7 +72,7 @@ experimental domain Accessibility optional AXValue attributeValue # Whether this source is superseded by a higher priority source. optional boolean superseded - # The native markup source for this value, e.g. a