Skip to content

Commit decdc1c

Browse files
authored
Merge branch 'trunk' into py-affected-split
2 parents 79bfb73 + c779dcd commit decdc1c

9 files changed

Lines changed: 105 additions & 84 deletions

File tree

Rakefile

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,17 @@ task :format do |_task, arguments|
143143
Rake::Task['all:format'].invoke(*args)
144144
end
145145

146-
desc 'Run linters (may auto-fix some issues; stricter checks than :format)'
147-
task :lint do
148-
puts 'Linting shell scripts and GitHub Actions...'
146+
def lint_actions
149147
shellcheck = Bazel.execute('build', [], '@multitool//tools/shellcheck')
150148
Bazel.execute('run', ['--', '-shellcheck', shellcheck], '@multitool//tools/actionlint:cwd')
149+
end
151150

152-
Rake::Task['all:lint'].invoke
151+
desc 'Run linters (may auto-fix some issues; stricter checks than :format)'
152+
task :lint do
153+
SeleniumRake.aggregate_errors(
154+
shellcheck_and_actionlint: -> { lint_actions },
155+
all: -> { Rake::Task['all:lint'].invoke }
156+
)
153157
end
154158

155159
# Legacy aliases - call namespaced tasks
@@ -215,24 +219,18 @@ namespace :all do
215219
desc 'Validate release credentials for all languages'
216220
task :check_credentials do |_task, arguments|
217221
args = arguments.to_a
218-
failures = []
219-
%w[java py rb dotnet node].each do |lang|
220-
Rake::Task["#{lang}:check_credentials"].invoke(*args)
221-
rescue StandardError => e
222-
failures << "#{lang}: #{e.message}"
222+
steps = %w[java py rb dotnet node].to_h do |lang|
223+
[lang.to_sym, -> { Rake::Task["#{lang}:check_credentials"].invoke(*args) }]
223224
end
224-
raise "Credential check failed:\n#{failures.join("\n")}" unless failures.empty?
225+
SeleniumRake.aggregate_errors(**steps)
225226
end
226227

227228
desc 'Verify all packages are published to their registries'
228229
task :verify do
229-
failures = []
230-
%w[java py rb dotnet node].each do |lang|
231-
Rake::Task["#{lang}:verify"].invoke
232-
rescue StandardError => e
233-
failures << "#{lang}: #{e.message}"
230+
steps = %w[java py rb dotnet node].to_h do |lang|
231+
[lang.to_sym, -> { Rake::Task["#{lang}:verify"].invoke }]
234232
end
235-
raise "Verification failed:\n#{failures.join("\n")}" unless failures.empty?
233+
SeleniumRake.aggregate_errors(**steps)
236234
end
237235

238236
desc 'Release all artifacts for all language bindings'
@@ -257,15 +255,10 @@ namespace :all do
257255

258256
desc 'Run linters for all language bindings'
259257
task :lint do
260-
all_langs = %w[java py rb dotnet node]
261-
failures = []
262-
all_langs.each do |lang|
263-
puts "Linting #{lang}..."
264-
Rake::Task["#{lang}:lint"].invoke
265-
rescue StandardError => e
266-
failures << "#{lang}: #{e.message}"
258+
steps = %w[java py rb dotnet node].to_h do |lang|
259+
[lang.to_sym, -> { Rake::Task["#{lang}:lint"].invoke }]
267260
end
268-
raise "Lint failed:\n#{failures.join("\n")}" unless failures.empty?
261+
SeleniumRake.aggregate_errors(**steps)
269262
end
270263

271264
desc 'Update versions for all language bindings'

common/repositories.bzl

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ def pin_browsers():
1111

1212
http_archive(
1313
name = "linux_firefox",
14-
url = "https://ftp.mozilla.org/pub/firefox/releases/151.0.2/linux-x86_64/en-US/firefox-151.0.2.tar.xz",
15-
sha256 = "1f77a1aacc2a0ccbb36998875f04a9c22229103dc35cb4bbb89784f0809161e0",
14+
url = "https://ftp.mozilla.org/pub/firefox/releases/151.0.3/linux-x86_64/en-US/firefox-151.0.3.tar.xz",
15+
sha256 = "b2405272cc3a8dde0fadeb5cea2b1fb03fc0a181b3015bd60985a63b04e70ed7",
1616
build_file_content = """
1717
load("@aspect_rules_js//js:defs.bzl", "js_library")
1818
package(default_visibility = ["//visibility:public"])
@@ -33,8 +33,8 @@ js_library(
3333

3434
dmg_archive(
3535
name = "mac_firefox",
36-
url = "https://ftp.mozilla.org/pub/firefox/releases/151.0.2/mac/en-US/Firefox%20151.0.2.dmg",
37-
sha256 = "232631dd169b8a4fc661a7a6756da3910cc669ba34b81858b7915ca138752e79",
36+
url = "https://ftp.mozilla.org/pub/firefox/releases/151.0.3/mac/en-US/Firefox%20151.0.3.dmg",
37+
sha256 = "60d5cb29412b161c76ecc58f3f8a960cd0048081cf84c6fe91579f1957564277",
3838
build_file_content = """
3939
load("@aspect_rules_js//js:defs.bzl", "js_library")
4040
package(default_visibility = ["//visibility:public"])
@@ -50,8 +50,8 @@ js_library(
5050

5151
http_archive(
5252
name = "linux_beta_firefox",
53-
url = "https://ftp.mozilla.org/pub/firefox/releases/152.0b5/linux-x86_64/en-US/firefox-152.0b5.tar.xz",
54-
sha256 = "c9215e26c5ee9d08ab7afbd04b7605f18a77beba062d3c013629c27860d5c106",
53+
url = "https://ftp.mozilla.org/pub/firefox/releases/152.0b7/linux-x86_64/en-US/firefox-152.0b7.tar.xz",
54+
sha256 = "a30876a4025e6ba8a619bd7278f217abb894ffc60d6b691ece0b47ed7a72e995",
5555
build_file_content = """
5656
load("@aspect_rules_js//js:defs.bzl", "js_library")
5757
package(default_visibility = ["//visibility:public"])
@@ -72,8 +72,8 @@ js_library(
7272

7373
dmg_archive(
7474
name = "mac_beta_firefox",
75-
url = "https://ftp.mozilla.org/pub/firefox/releases/152.0b5/mac/en-US/Firefox%20152.0b5.dmg",
76-
sha256 = "595f550d5e7c6230ec783777a6b4de287a73ea87b8fad739ad9c301f2d899ca0",
75+
url = "https://ftp.mozilla.org/pub/firefox/releases/152.0b7/mac/en-US/Firefox%20152.0b7.dmg",
76+
sha256 = "47f2d377abd82ff2ae9cd557996f6194ca92637c666565c1802760d1b6c14c5f",
7777
build_file_content = """
7878
load("@aspect_rules_js//js:defs.bzl", "js_library")
7979
package(default_visibility = ["//visibility:public"])
@@ -89,8 +89,8 @@ js_library(
8989

9090
http_archive(
9191
name = "linux_geckodriver",
92-
url = "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz",
93-
sha256 = "0bde38707eb0a686a20c6bd50f4adcc7d60d4f73c60eb83ee9e0db8f65823e04",
92+
url = "https://github.com/mozilla/geckodriver/releases/download/v0.37.0/geckodriver-v0.37.0-linux64.tar.gz",
93+
sha256 = "90d4e33bd9816684400c160d1309aaffec23a3f65103511d5a62d8501062e548",
9494
build_file_content = """
9595
load("@aspect_rules_js//js:defs.bzl", "js_library")
9696
package(default_visibility = ["//visibility:public"])
@@ -106,8 +106,8 @@ js_library(
106106

107107
http_archive(
108108
name = "mac_geckodriver",
109-
url = "https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-macos-aarch64.tar.gz",
110-
sha256 = "c045c8c0d859e6045defbb1c31b37ebeb3c942fc61daaf11e21fc634f2d71c52",
109+
url = "https://github.com/mozilla/geckodriver/releases/download/v0.37.0/geckodriver-v0.37.0-macos-aarch64.tar.gz",
110+
sha256 = "369165b614164f8adc43d8e017f55fe1ced208afe474be2f0cc1c01fc6529725",
111111
build_file_content = """
112112
load("@aspect_rules_js//js:defs.bzl", "js_library")
113113
package(default_visibility = ["//visibility:public"])
@@ -123,10 +123,10 @@ js_library(
123123

124124
pkg_archive(
125125
name = "mac_edge",
126-
url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/eff0de67-2c4d-45ce-b8e2-f1ce8c69c595/MicrosoftEdge-148.0.3967.96.pkg",
127-
sha256 = "d2056a5eb9972b7d7a3cb34fbfa313b43c2ddcd9c7282b1bbba7a48b55028087",
126+
url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/20523184-11bb-436b-a567-0e33fcaff5f2/MicrosoftEdge-149.0.4022.52.pkg",
127+
sha256 = "d5c2e2616d8f397bda51b13fbcb87497cbc988662add896ffac4a093dd144195",
128128
move = {
129-
"MicrosoftEdge-148.0.3967.96.pkg/Payload/Microsoft Edge.app": "Edge.app",
129+
"MicrosoftEdge-149.0.4022.52.pkg/Payload/Microsoft Edge.app": "Edge.app",
130130
},
131131
build_file_content = """
132132
load("@aspect_rules_js//js:defs.bzl", "js_library")
@@ -143,8 +143,8 @@ js_library(
143143

144144
deb_archive(
145145
name = "linux_edge",
146-
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_148.0.3967.96-1_amd64.deb",
147-
sha256 = "ff447b27cb72767e033d38c5814709bd3b1eccadb32ac2a45f0fffdea8a5af49",
146+
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_149.0.4022.52-1_amd64.deb",
147+
sha256 = "de51617f1912f343f9f5d934d25a41a7ef0820552f4842551864df020871c388",
148148
build_file_content = """
149149
load("@aspect_rules_js//js:defs.bzl", "js_library")
150150
package(default_visibility = ["//visibility:public"])
@@ -165,8 +165,8 @@ js_library(
165165

166166
http_archive(
167167
name = "linux_edgedriver",
168-
url = "https://msedgedriver.microsoft.com/148.0.3967.96/edgedriver_linux64.zip",
169-
sha256 = "b4f53b446acd6801396117eee46bdd100ea8a6110e6c1d8d3bb421d8dff4d5b8",
168+
url = "https://msedgedriver.microsoft.com/149.0.4022.52/edgedriver_linux64.zip",
169+
sha256 = "edf675b58fd133c0a36d9575f37a2b71ca6bf9e299c188bce89245a96dd3648b",
170170
build_file_content = """
171171
load("@aspect_rules_js//js:defs.bzl", "js_library")
172172
package(default_visibility = ["//visibility:public"])
@@ -182,8 +182,8 @@ js_library(
182182

183183
http_archive(
184184
name = "mac_edgedriver",
185-
url = "https://msedgedriver.microsoft.com/148.0.3967.96/edgedriver_mac64_m1.zip",
186-
sha256 = "934a9aa94bd3faa60773507e65c3ea75f45d571bf24a229256638f9c88bf97aa",
185+
url = "https://msedgedriver.microsoft.com/149.0.4022.52/edgedriver_mac64_m1.zip",
186+
sha256 = "1433027e3ef2bb847ca1ad77cb5235d7ef215fea287827ecdd644d0c69435fb3",
187187
build_file_content = """
188188
load("@aspect_rules_js//js:defs.bzl", "js_library")
189189
package(default_visibility = ["//visibility:public"])
@@ -199,8 +199,8 @@ js_library(
199199

200200
http_archive(
201201
name = "linux_chrome",
202-
url = "https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/linux64/chrome-linux64.zip",
203-
sha256 = "05b6843867b4ee40f280327b748397a158b84ccbe20b94c3e89740d15422988f",
202+
url = "https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/linux64/chrome-linux64.zip",
203+
sha256 = "a77e3ba8fa8cf299a1a980313a162ea1a5d33297f632d5d3c7f553f7cf6780d4",
204204
build_file_content = """
205205
load("@aspect_rules_js//js:defs.bzl", "js_library")
206206
package(default_visibility = ["//visibility:public"])
@@ -220,8 +220,8 @@ js_library(
220220
)
221221
http_archive(
222222
name = "mac_chrome",
223-
url = "https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/mac-arm64/chrome-mac-arm64.zip",
224-
sha256 = "2d6a26edcbdd39d38ddfe7a0f11cb315eea7d0c5bbf2e3200ecdaa2855bc2bf5",
223+
url = "https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/mac-arm64/chrome-mac-arm64.zip",
224+
sha256 = "376b22526a92345db188f8750be8a5abc45d1c8dda3805bfe89bf3327a10062f",
225225
strip_prefix = "chrome-mac-arm64",
226226
patch_cmds = [
227227
"mv 'Google Chrome for Testing.app' Chrome.app",
@@ -241,8 +241,8 @@ js_library(
241241
)
242242
http_archive(
243243
name = "linux_chromedriver",
244-
url = "https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/linux64/chromedriver-linux64.zip",
245-
sha256 = "8fd9b1efe5c97191690d1e90f5d61eb323d82b44e38da09e65fecf9bbed86730",
244+
url = "https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/linux64/chromedriver-linux64.zip",
245+
sha256 = "27a25d270195552a75e72c86d425b39e4bd1da51d7a6df9fc9071629e3a0acbf",
246246
strip_prefix = "chromedriver-linux64",
247247
build_file_content = """
248248
load("@aspect_rules_js//js:defs.bzl", "js_library")
@@ -259,8 +259,8 @@ js_library(
259259

260260
http_archive(
261261
name = "mac_chromedriver",
262-
url = "https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/mac-arm64/chromedriver-mac-arm64.zip",
263-
sha256 = "7be431042c78b6452ee0684afa2e3f0838653266503557513613362aeea7a4b8",
262+
url = "https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/mac-arm64/chromedriver-mac-arm64.zip",
263+
sha256 = "58cb81188172ecf2db41f7704538942017ebc9e1bdb822151f9721c7066849c2",
264264
strip_prefix = "chromedriver-mac-arm64",
265265
build_file_content = """
266266
load("@aspect_rules_js//js:defs.bzl", "js_library")
@@ -277,8 +277,8 @@ js_library(
277277

278278
http_archive(
279279
name = "linux_beta_chrome",
280-
url = "https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/linux64/chrome-linux64.zip",
281-
sha256 = "a77e3ba8fa8cf299a1a980313a162ea1a5d33297f632d5d3c7f553f7cf6780d4",
280+
url = "https://storage.googleapis.com/chrome-for-testing-public/150.0.7871.5/linux64/chrome-linux64.zip",
281+
sha256 = "71b143f17eb6eeefb07bcee867f42d39942940b8e6bb57072410235a5fd7215c",
282282
build_file_content = """
283283
load("@aspect_rules_js//js:defs.bzl", "js_library")
284284
package(default_visibility = ["//visibility:public"])
@@ -298,8 +298,8 @@ js_library(
298298
)
299299
http_archive(
300300
name = "mac_beta_chrome",
301-
url = "https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/mac-arm64/chrome-mac-arm64.zip",
302-
sha256 = "376b22526a92345db188f8750be8a5abc45d1c8dda3805bfe89bf3327a10062f",
301+
url = "https://storage.googleapis.com/chrome-for-testing-public/150.0.7871.5/mac-arm64/chrome-mac-arm64.zip",
302+
sha256 = "24975dcc97ede4093437e84d8a05d270a7cc176e86d9fd64ad91fc705694d20e",
303303
strip_prefix = "chrome-mac-arm64",
304304
patch_cmds = [
305305
"mv 'Google Chrome for Testing.app' Chrome.app",
@@ -319,8 +319,8 @@ js_library(
319319
)
320320
http_archive(
321321
name = "linux_beta_chromedriver",
322-
url = "https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/linux64/chromedriver-linux64.zip",
323-
sha256 = "27a25d270195552a75e72c86d425b39e4bd1da51d7a6df9fc9071629e3a0acbf",
322+
url = "https://storage.googleapis.com/chrome-for-testing-public/150.0.7871.5/linux64/chromedriver-linux64.zip",
323+
sha256 = "98552d432041578e922d91065fcee2536ececa6b3c3b8a9a01686636bca8763a",
324324
strip_prefix = "chromedriver-linux64",
325325
build_file_content = """
326326
load("@aspect_rules_js//js:defs.bzl", "js_library")
@@ -337,8 +337,8 @@ js_library(
337337

338338
http_archive(
339339
name = "mac_beta_chromedriver",
340-
url = "https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/mac-arm64/chromedriver-mac-arm64.zip",
341-
sha256 = "58cb81188172ecf2db41f7704538942017ebc9e1bdb822151f9721c7066849c2",
340+
url = "https://storage.googleapis.com/chrome-for-testing-public/150.0.7871.5/mac-arm64/chromedriver-mac-arm64.zip",
341+
sha256 = "144c0245b33c58b62b31a120b008a677977400c7982729a86823b22580510710",
342342
strip_prefix = "chromedriver-mac-arm64",
343343
build_file_content = """
344344
load("@aspect_rules_js//js:defs.bzl", "js_library")

javascript/selenium-webdriver/test/firefox/addon_test.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
const assert = require('node:assert')
2121
const { Browser } = require('selenium-webdriver/index')
22-
const { Pages, suite } = require('../../lib/test')
22+
const { ignore, Pages, suite } = require('../../lib/test')
2323
const { locate } = require('../../lib/test/resources')
2424
const { until, By } = require('selenium-webdriver/index')
2525

@@ -61,7 +61,9 @@ suite(
6161
await verifyWebExtensionNotInstalled()
6262
})
6363

64-
it('installs and uninstalls by unsigned zip file', async function () {
64+
// Temporarily installed unsigned extensions no longer inject content scripts
65+
// https://bugzilla.mozilla.org/show_bug.cgi?id=2045054
66+
ignore(env.browsers(Browser.FIREFOX)).it('installs and uninstalls by unsigned zip file', async function () {
6567
await driver.get(Pages.blankPage)
6668
await verifyWebExtensionNotInstalled()
6769

@@ -89,7 +91,9 @@ suite(
8991
await verifyWebExtensionNotInstalled()
9092
})
9193

92-
it('installs and uninstalls by unsigned directory', async function () {
94+
// Temporarily installed unsigned extensions no longer inject content scripts
95+
// https://bugzilla.mozilla.org/show_bug.cgi?id=2045054
96+
ignore(env.browsers(Browser.FIREFOX)).it('installs and uninstalls by unsigned directory', async function () {
9397
await driver.get(Pages.blankPage)
9498
await verifyWebExtensionNotInstalled()
9599

@@ -103,7 +107,9 @@ suite(
103107
await verifyWebExtensionNotInstalled()
104108
})
105109

106-
it('installs and uninstalls by signed directory', async function () {
110+
// Installs the unsigned directory temporarily, so hits the same bug
111+
// https://bugzilla.mozilla.org/show_bug.cgi?id=2045054
112+
ignore(env.browsers(Browser.FIREFOX)).it('installs and uninstalls by signed directory', async function () {
107113
await driver.get(Pages.blankPage)
108114
await verifyWebExtensionNotInstalled()
109115

py/test/selenium/webdriver/firefox/ff_installs_addons_tests.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def test_install_uninstall_signed_addon_zip(driver, pages):
6767
assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0
6868

6969

70+
@pytest.mark.xfail_firefox(reason="https://bugzilla.mozilla.org/show_bug.cgi?id=2045054")
7071
@pytest.mark.no_driver_after_test
7172
def test_install_uninstall_unsigned_addon_zip(driver, pages):
7273
extension = os.path.join(EXTENSIONS, "webextensions-selenium-example-unsigned.zip")
@@ -107,6 +108,7 @@ def test_install_uninstall_signed_addon_dir(driver, pages):
107108
assert len(driver.find_elements(By.ID, "webextensions-selenium-example")) == 0
108109

109110

111+
@pytest.mark.xfail_firefox(reason="https://bugzilla.mozilla.org/show_bug.cgi?id=2045054")
110112
@pytest.mark.no_driver_after_test
111113
def test_install_uninstall_unsigned_addon_dir(driver, pages):
112114
zip = os.path.join(EXTENSIONS, "webextensions-selenium-example-unsigned.zip")

rake_tasks/common.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,20 @@ def self.update_changelog(version, language, path, changelog, header)
107107
File.write(changelog, "#{header}\n#{entries}\n\n#{content}")
108108
end
109109

110+
def self.aggregate_errors(**steps)
111+
failures = steps.filter_map do |name, closure|
112+
label = name.to_s.tr('_', ' ')
113+
puts "Running #{label}..." unless name == :all
114+
closure.call
115+
nil
116+
rescue StandardError => e
117+
"#{label}: #{e.message}"
118+
end
119+
return if failures.empty?
120+
121+
raise failures.join("\n\n")
122+
end
123+
110124
def self.verify_package_published(url)
111125
puts "Verifying #{url}..."
112126
uri = URI(url)

rake_tasks/dotnet.rake

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,14 +127,16 @@ end
127127

128128
desc 'Run .NET linter (dotnet format analyzers, docs)'
129129
task :lint do
130-
puts ' Running dotnet format analyzers...'
131-
Bazel.execute('run', ['--', 'analyzers', '--verify-no-changes'], '//dotnet:format')
132-
Rake::Task['dotnet:docs_generate'].invoke
130+
steps = {
131+
dotnet_format_analyzers: -> { Bazel.execute('run', ['--', 'analyzers', '--verify-no-changes'], '//dotnet:format') },
132+
dotnet_docs: -> { Rake::Task['dotnet:docs_generate'].invoke }
133+
}
133134

134-
# TODO: Identify specific diagnostics that we want to enforce but can't be auto-corrected (e.g., 'IDE0060'):
135135
enforced_diagnostics = []
136-
next if enforced_diagnostics.empty?
136+
if enforced_diagnostics&.any?
137+
arguments = %w[-- style --severity info --verify-no-changes --diagnostics] + enforced_diagnostics
138+
steps[:dotnet_format_style] = -> { Bazel.execute('run', arguments, '//dotnet:format') }
139+
end
137140

138-
arguments = %w[-- style --severity info --verify-no-changes --diagnostics] + enforced_diagnostics
139-
Bazel.execute('run', arguments, '//dotnet:format')
141+
SeleniumRake.aggregate_errors(**steps)
140142
end

rake_tasks/python.rake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,9 @@ end
172172

173173
desc 'Run Python linters (ruff check --no-fix, mypy, docs)'
174174
task :lint do
175-
puts ' Running ruff check (verify)...'
176-
Bazel.execute('run', ['--', '--no-fix'], '//py:ruff-check')
177-
puts ' Running mypy...'
178-
Bazel.execute('run', [], '//py:mypy')
179-
Rake::Task['py:docs_generate'].invoke
175+
SeleniumRake.aggregate_errors(
176+
ruff_check: -> { Bazel.execute('run', ['--', '--no-fix'], '//py:ruff-check') },
177+
mypy: -> { Bazel.execute('run', [], '//py:mypy') },
178+
python_docs: -> { Rake::Task['py:docs_generate'].invoke }
179+
)
180180
end

0 commit comments

Comments
 (0)