From 76956e31a0cb87d52bff798b31557d61af5806c6 Mon Sep 17 00:00:00 2001 From: Alex Rodionov Date: Fri, 22 Mar 2024 19:48:48 -0700 Subject: [PATCH] [bazel] Move pinned browsers to MODULE --- MODULE.bazel | 30 +++- MODULE.bazel.lock | 281 +++++++++++++++++++++++++++++++++---- WORKSPACE.bzlmod | 4 - common/private/drivers.bzl | 5 +- common/repositories.bzl | 199 +++++++++++++++++++++----- scripts/pinned_browsers.py | 151 +++++++++++++++++--- 6 files changed, 575 insertions(+), 95 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 6995330acc74f..780303241858a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -5,6 +5,7 @@ bazel_dep(name = "aspect_rules_esbuild", version = "0.18.0") bazel_dep(name = "aspect_rules_js", version = "1.35.0") bazel_dep(name = "aspect_rules_ts", version = "2.1.0") bazel_dep(name = "bazel_features", version = "1.9.0") +bazel_dep(name = "bazel_skylib", version = "1.5.0") bazel_dep(name = "buildifier_prebuilt", version = "6.4.0") bazel_dep(name = "contrib_rules_jvm", version = "0.24.0") bazel_dep(name = "platforms", version = "0.0.8") @@ -328,4 +329,31 @@ crate.from_cargo( use_repo(crate, "crates") selenium_manager_artifacts = use_extension("//common:selenium_manager.bzl", "selenium_manager_artifacts") -use_repo(selenium_manager_artifacts, "download_sm_linux", "download_sm_macos", "download_sm_windows") +use_repo( + selenium_manager_artifacts, + "download_sm_linux", + "download_sm_macos", + "download_sm_windows", +) + +pin_browsers_extension = use_extension("//common:repositories.bzl", "pin_browsers_extension") +use_repo( + pin_browsers_extension, + "linux_firefox", + "mac_firefox", + "linux_beta_firefox", + "mac_beta_firefox", + "linux_geckodriver", + "mac_geckodriver", + "linux_edge", + "mac_edge", + "linux_edgedriver", + "mac_edgedriver", + "linux_chrome", + "mac_chrome", + "linux_chromedriver", + "mac_chromedriver", +) + +local_drivers = use_repo_rule("//common/private:drivers.bzl", "local_drivers") +local_drivers(name = "local_drivers") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index ed071c4c7a234..55a7fddf22eec 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1,6 +1,6 @@ { "lockFileVersion": 6, - "moduleFileHash": "5033931fac34032b67be998a839cabd443081a8434d3d754633f12717453ad77", + "moduleFileHash": "2c27cdea1dfa8abf9ac2025db3c201b35029e652b5f70761ff54c4ba9a6e9622", "flags": { "cmdRegistries": [ "https://bcr.bazel.build/" @@ -806,6 +806,66 @@ "tags": [], "hasDevUseExtension": false, "hasNonDevUseExtension": true + }, + { + "extensionBzlFile": "@selenium//common:repositories.bzl", + "extensionName": "pin_browsers_extension", + "usingModule": "", + "location": { + "file": "@@//:MODULE.bazel", + "line": 339, + "column": 39 + }, + "imports": { + "linux_firefox": "linux_firefox", + "mac_firefox": "mac_firefox", + "linux_beta_firefox": "linux_beta_firefox", + "mac_beta_firefox": "mac_beta_firefox", + "linux_geckodriver": "linux_geckodriver", + "mac_geckodriver": "mac_geckodriver", + "linux_edge": "linux_edge", + "mac_edge": "mac_edge", + "linux_edgedriver": "linux_edgedriver", + "mac_edgedriver": "mac_edgedriver", + "linux_chrome": "linux_chrome", + "mac_chrome": "mac_chrome", + "linux_chromedriver": "linux_chromedriver", + "mac_chromedriver": "mac_chromedriver" + }, + "devImports": [], + "tags": [], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true + }, + { + "extensionBzlFile": "//:MODULE.bazel", + "extensionName": "_repo_rules", + "usingModule": "", + "location": { + "file": "@@//:MODULE.bazel", + "line": 0, + "column": 0 + }, + "imports": { + "local_drivers": "local_drivers" + }, + "devImports": [], + "tags": [ + { + "tagName": "//common/private:drivers.bzl%local_drivers", + "attributeValues": { + "name": "local_drivers" + }, + "devDependency": false, + "location": { + "file": "@@//:MODULE.bazel", + "line": 359, + "column": 14 + } + } + ], + "hasDevUseExtension": false, + "hasNonDevUseExtension": true } ], "deps": { @@ -814,6 +874,7 @@ "aspect_rules_js": "aspect_rules_js@1.35.0", "aspect_rules_ts": "aspect_rules_ts@2.1.0", "bazel_features": "bazel_features@1.9.0", + "bazel_skylib": "bazel_skylib@1.5.0", "buildifier_prebuilt": "buildifier_prebuilt@6.4.0", "contrib_rules_jvm": "contrib_rules_jvm@0.24.0", "platforms": "platforms@0.0.8", @@ -1133,6 +1194,36 @@ } } }, + "bazel_skylib@1.5.0": { + "name": "bazel_skylib", + "version": "1.5.0", + "key": "bazel_skylib@1.5.0", + "repoName": "bazel_skylib", + "executionPlatformsToRegister": [], + "toolchainsToRegister": [ + "//toolchains/unittest:cmd_toolchain", + "//toolchains/unittest:bash_toolchain" + ], + "extensionUsages": [], + "deps": { + "platforms": "platforms@0.0.8", + "bazel_tools": "bazel_tools@_", + "local_config_platform": "local_config_platform@_" + }, + "repoSpec": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + ], + "integrity": "sha256-zVWgYudjuTSZIfD124w5MyiNyLpPdt2UFqrGis7jy5Q=", + "strip_prefix": "", + "remote_patches": {}, + "remote_patch_strip": 0 + } + } + }, "buildifier_prebuilt@6.4.0": { "name": "buildifier_prebuilt", "version": "6.4.0", @@ -2820,36 +2911,6 @@ "bazel_tools": "bazel_tools@_" } }, - "bazel_skylib@1.5.0": { - "name": "bazel_skylib", - "version": "1.5.0", - "key": "bazel_skylib@1.5.0", - "repoName": "bazel_skylib", - "executionPlatformsToRegister": [], - "toolchainsToRegister": [ - "//toolchains/unittest:cmd_toolchain", - "//toolchains/unittest:bash_toolchain" - ], - "extensionUsages": [], - "deps": { - "platforms": "platforms@0.0.8", - "bazel_tools": "bazel_tools@_", - "local_config_platform": "local_config_platform@_" - }, - "repoSpec": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "urls": [ - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" - ], - "integrity": "sha256-zVWgYudjuTSZIfD124w5MyiNyLpPdt2UFqrGis7jy5Q=", - "strip_prefix": "", - "remote_patches": {}, - "remote_patch_strip": 0 - } - } - }, "stardoc@0.5.6": { "name": "stardoc", "version": "0.5.6", @@ -3848,6 +3909,164 @@ } }, "moduleExtensions": { + "//common:repositories.bzl%pin_browsers_extension": { + "general": { + "bzlTransitiveDigest": "lIRd1pRHzimXYycAOry9rFVBqTYsS1WpsUpBPcdRmiw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_drivers": { + "bzlFile": "@@//common/private:drivers.bzl", + "ruleClassName": "local_drivers", + "attributes": {} + }, + "mac_chromedriver": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/mac-x64/chromedriver-mac-x64.zip", + "sha256": "41d2fd29a9a5b955fa908218e85ef3c4a2f997b72586c13b416196c3861152d3", + "strip_prefix": "chromedriver-mac-x64", + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"chromedriver\"])\n\njs_library(\n name = \"chromedriver-js\",\n data = [\"chromedriver\"],\n)\n" + } + }, + "linux_edgedriver": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://msedgedriver.azureedge.net/122.0.2365.80/edgedriver_linux64.zip", + "sha256": "ce49a0e62695ae10226903c00bb15bd296d563a009f03544394228bedf250ab5", + "build_file_content": "exports_files([\"msedgedriver\"])" + } + }, + "mac_edgedriver": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://msedgedriver.azureedge.net/122.0.2365.80/edgedriver_mac64.zip", + "sha256": "a12f5030963240e0838670e4cbaf826bd9e5a92565e5efa2e0066729cb34b523", + "build_file_content": "exports_files([\"msedgedriver\"])" + } + }, + "mac_firefox": { + "bzlFile": "@@//common/private:dmg_archive.bzl", + "ruleClassName": "dmg_archive", + "attributes": { + "url": "https://ftp.mozilla.org/pub/firefox/releases/123.0.1/mac/en-US/Firefox%20123.0.1.dmg", + "sha256": "35885bacbe7c838c8de476ced3aa2dc0f8642d613c0db5b462e919da1b6cf8c7", + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"Firefox.app\"])\n\njs_library(\n name = \"firefox-js\",\n data = glob([\"Firefox.app/**/*\"]),\n)\n" + } + }, + "mac_geckodriver": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-macos.tar.gz", + "sha256": "9cec1546585b532959782c8220599aa97c1f99265bb2d75ad00cd56ef98f650c", + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"geckodriver\"])\n\njs_library(\n name = \"geckodriver-js\",\n data = [\n \"geckodriver\",\n ],\n)\n" + } + }, + "linux_beta_firefox": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://ftp.mozilla.org/pub/firefox/releases/124.0b9/linux-x86_64/en-US/firefox-124.0b9.tar.bz2", + "sha256": "80208d269dc8d251a7f9f292a7a6ea9ad217189a01075ff6d77326cb0352c1db", + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"files\",\n srcs = glob([\"**/*\"]),\n visibility = [\"//visibility:public\"],\n)\n\nexports_files(\n [\"firefox/firefox\"],\n)\n\njs_library(\n name = \"firefox-js\",\n data = [\":files\"],\n)\n" + } + }, + "linux_firefox": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://ftp.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/en-US/firefox-123.0.1.tar.bz2", + "sha256": "3b8534ecd870f25434fc7ac8b7a26470492484f24fefe3be8eed0b41db52fe43", + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"files\",\n srcs = glob([\"**/*\"]),\n)\n\nexports_files(\n [\"firefox/firefox\"],\n)\n\njs_library(\n name = \"firefox-js\",\n data = [\":files\"],\n)\n" + } + }, + "linux_chrome": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/linux64/chrome-linux64.zip", + "sha256": "d20be2808665743423536a2ce030ffa8f6092b9dd9a29f72cd8999ef71955700", + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n name = \"files\",\n srcs = glob([\"**/*\"]),\n)\n\nexports_files(\n [\"chrome-linux64/chrome\"],\n)\n\njs_library(\n name = \"chrome-js\",\n data = [\":files\"],\n)\n" + } + }, + "mac_beta_firefox": { + "bzlFile": "@@//common/private:dmg_archive.bzl", + "ruleClassName": "dmg_archive", + "attributes": { + "url": "https://ftp.mozilla.org/pub/firefox/releases/124.0b9/mac/en-US/Firefox%20124.0b9.dmg", + "sha256": "c716240f5fd76937cccbe93e9ffdb681782fbacb9af1face7416351a6e71a1a3", + "build_file_content": "exports_files([\"Firefox.app\"])" + } + }, + "linux_geckodriver": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-linux64.tar.gz", + "sha256": "79b2e77edd02c0ec890395140d7cdc04a7ff0ec64503e62a0b74f88674ef1313", + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"geckodriver\"])\n\njs_library(\n name = \"geckodriver-js\",\n data = [\n \"geckodriver\",\n ],\n)\n" + } + }, + "mac_edge": { + "bzlFile": "@@//common/private:pkg_archive.bzl", + "ruleClassName": "pkg_archive", + "attributes": { + "url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/61b13da3-c921-482a-9166-743689310b71/MicrosoftEdge-122.0.2365.92.pkg", + "sha256": "304243a7ef631781b707c0d9cb8fd35e718cebad91c29078e389bb4e813afef9", + "move": { + "MicrosoftEdge-122.0.2365.92.pkg/Payload/Microsoft Edge.app": "Edge.app" + }, + "build_file_content": "exports_files([\"Edge.app\"])" + } + }, + "mac_chrome": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/mac-x64/chrome-mac-x64.zip", + "sha256": "f4efaa5dbe4e02d5d324ac862427be2facbca1bed1c75c5bacaa4c922ab5b643", + "strip_prefix": "chrome-mac-x64", + "patch_cmds": [ + "mv 'Google Chrome for Testing.app' Chrome.app", + "mv 'Chrome.app/Contents/MacOS/Google Chrome for Testing' Chrome.app/Contents/MacOS/Chrome" + ], + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"Chrome.app\"])\n\njs_library(\n name = \"chrome-js\",\n data = glob([\"Chrome.app/**/*\"]),\n)\n" + } + }, + "linux_chromedriver": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "url": "https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/linux64/chromedriver-linux64.zip", + "sha256": "40aaf6063c9d88fe43dd3e5b79cc101de1662b42ccac81616ecb0310ba921103", + "strip_prefix": "chromedriver-linux64", + "build_file_content": "\nload(\"@aspect_rules_js//js:defs.bzl\", \"js_library\")\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"chromedriver\"])\n\njs_library(\n name = \"chromedriver-js\",\n data = [\"chromedriver\"],\n)\n" + } + }, + "linux_edge": { + "bzlFile": "@@//common/private:deb_archive.bzl", + "ruleClassName": "deb_archive", + "attributes": { + "url": "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_122.0.2365.92-1_amd64.deb", + "sha256": "eab115c454b669dbc42f83b6b9ccc94ec4f2df5a2cf6be762069c75f18f703e8", + "build_file_content": "\nfilegroup(\n name = \"files\",\n srcs = glob([\"**/*\"]),\n visibility = [\"//visibility:public\"],\n)\n\nexports_files(\n [\"opt/microsoft/msedge/microsoft-edge\"],\n)\n" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, "//common:selenium_manager.bzl%selenium_manager_artifacts": { "general": { "bzlTransitiveDigest": "Yz54SfSuut4/+OMYy+rksIRgHlNIF+uwxnKXHdyUbiM=", diff --git a/WORKSPACE.bzlmod b/WORKSPACE.bzlmod index 8baad6369411d..4599359298530 100644 --- a/WORKSPACE.bzlmod +++ b/WORKSPACE.bzlmod @@ -24,7 +24,3 @@ load("@io_bazel_rules_closure//closure:repositories.bzl", "rules_closure_depende rules_closure_dependencies() rules_closure_toolchains() - -load("//common:repositories.bzl", "pin_browsers") - -pin_browsers() diff --git a/common/private/drivers.bzl b/common/private/drivers.bzl index 0d1972be5a63a..f1c81fe6fc8a2 100644 --- a/common/private/drivers.bzl +++ b/common/private/drivers.bzl @@ -28,9 +28,6 @@ def _local_drivers_impl(repository_ctx): repository_ctx.file("BUILD.bazel", "\n".join(contents)) -_local_drivers = repository_rule( +local_drivers = repository_rule( _local_drivers_impl, ) - -def local_drivers(): - _local_drivers(name = "local_drivers") diff --git a/common/repositories.bzl b/common/repositories.bzl index 77850f96aaa04..86f7f0438d983 100644 --- a/common/repositories.bzl +++ b/common/repositories.bzl @@ -7,93 +7,158 @@ load("//common/private:drivers.bzl", "local_drivers") load("//common/private:pkg_archive.bzl", "pkg_archive") def pin_browsers(): - local_drivers() + local_drivers(name = "local_drivers") http_archive( name = "linux_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/124.0/linux-x86_64/en-US/firefox-124.0.tar.bz2", - sha256 = "788db377d7b1d2e77d830af308e93f98c97291d8ddaec44a96d82c591f1d4dd0", + url = "https://ftp.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/en-US/firefox-124.0.1.tar.bz2", + sha256 = "b419cb0a10f6f601b1066d75f57b10e378f56b961be8c9dc1c7f73b869ecf82d", build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + filegroup( name = "files", srcs = glob(["**/*"]), - visibility = ["//visibility:public"], ) -exports_files( - ["firefox/firefox"], +exports_files(["firefox/firefox"]) + +js_library( + name = "firefox-js", + data = [":files"], ) """, ) dmg_archive( name = "mac_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/124.0/mac/en-US/Firefox%20124.0.dmg", - sha256 = "9876115ec8729e8138493b5898c15939476042cd5d902e364c372af4b1141968", - build_file_content = "exports_files([\"Firefox.app\"])", + url = "https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.dmg", + sha256 = "b7b260287296cf65193e76c20488fa75f98ff858ea1c2be4337ce5c1226ebcfa", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["Firefox.app"]) + +js_library( + name = "firefox-js", + data = glob(["Firefox.app/**/*"]), +) +""", ) http_archive( name = "linux_beta_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/125.0b2/linux-x86_64/en-US/firefox-125.0b2.tar.bz2", - sha256 = "576aff8410a77d42104eda53e59048919015f90be662f0608ac534be3baa46b4", + url = "https://ftp.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/en-US/firefox-125.0b3.tar.bz2", + sha256 = "6cdebd362dbfbf207bad3d82e529f570d7785e5889420f1645c47773107c299f", build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + filegroup( name = "files", srcs = glob(["**/*"]), - visibility = ["//visibility:public"], ) -exports_files( - ["firefox/firefox"], +exports_files(["firefox/firefox"]) + +js_library( + name = "firefox-js", + data = [":files"], ) """, ) dmg_archive( name = "mac_beta_firefox", - url = "https://ftp.mozilla.org/pub/firefox/releases/125.0b2/mac/en-US/Firefox%20125.0b2.dmg", - sha256 = "404d030877db6b46cd7efe896f403e98250a4806f794a25a2654c51b3108efe1", - build_file_content = "exports_files([\"Firefox.app\"])", + url = "https://ftp.mozilla.org/pub/firefox/releases/125.0b3/mac/en-US/Firefox%20125.0b3.dmg", + sha256 = "16f3f7e66fd46fede4545312b8c776576cc4935e4a41ce27527252ec5ab0a18c", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["Firefox.app"]) + +js_library( + name = "firefox-js", + data = glob(["Firefox.app/**/*"]), +) +""", ) http_archive( name = "linux_geckodriver", url = "https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-linux64.tar.gz", sha256 = "79b2e77edd02c0ec890395140d7cdc04a7ff0ec64503e62a0b74f88674ef1313", - build_file_content = "exports_files([\"geckodriver\"])", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["geckodriver"]) + +js_library( + name = "geckodriver-js", + data = ["geckodriver"], +) +""", ) http_archive( name = "mac_geckodriver", url = "https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-macos.tar.gz", sha256 = "9cec1546585b532959782c8220599aa97c1f99265bb2d75ad00cd56ef98f650c", - build_file_content = "exports_files([\"geckodriver\"])", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["geckodriver"]) + +js_library( + name = "geckodriver-js", + data = ["geckodriver"], +) +""", ) pkg_archive( name = "mac_edge", - url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/61b13da3-c921-482a-9166-743689310b71/MicrosoftEdge-122.0.2365.92.pkg", - sha256 = "304243a7ef631781b707c0d9cb8fd35e718cebad91c29078e389bb4e813afef9", + url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/cb3060ca-0635-4d36-b315-e2a0539f4889/MicrosoftEdge-123.0.2420.53.pkg", + sha256 = "0b8dc79dcf1415f7559a7dd927f4a1ef5055155ea1d924b863d570debdb68408", move = { - "MicrosoftEdge-122.0.2365.92.pkg/Payload/Microsoft Edge.app": "Edge.app", + "MicrosoftEdge-123.0.2420.53.pkg/Payload/Microsoft Edge.app": "Edge.app", }, - build_file_content = "exports_files([\"Edge.app\"])", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["Edge.app"])", + +js_library( + name = "edge-js", + data = glob(["Edge.app/**/*"]), +) +""" ) deb_archive( name = "linux_edge", - url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_122.0.2365.92-1_amd64.deb", - sha256 = "eab115c454b669dbc42f83b6b9ccc94ec4f2df5a2cf6be762069c75f18f703e8", + url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_123.0.2420.53-1_amd64.deb", + sha256 = "ec2eb0642211a1da962a299b9d4977d933a18b3b2213753f6deded96948db6dd", build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + filegroup( name = "files", srcs = glob(["**/*"]), - visibility = ["//visibility:public"], ) -exports_files( - ["opt/microsoft/msedge/microsoft-edge"], +exports_files(["opt/microsoft/msedge/microsoft-edge"]) + +js_library( + name = "edge-js", + data = [":files"], ) """, ) @@ -102,14 +167,34 @@ exports_files( name = "linux_edgedriver", url = "https://msedgedriver.azureedge.net/122.0.2365.92/edgedriver_linux64.zip", sha256 = "d3b45a768e8ff7c9665c657fe121d1e90e8b6d224e3a705c7120d302a00271ad", - build_file_content = "exports_files([\"msedgedriver\"])", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["msedgedriver"]) + +js_library( + name = "msedgedriver-js", + data = ["msedgedriver"], +) +""", ) http_archive( name = "mac_edgedriver", url = "https://msedgedriver.azureedge.net/122.0.2365.92/edgedriver_mac64.zip", sha256 = "5ad0a70fcf89b9ef8e9b22cba5582c24f87790ff064e2154562e7239b62ebab6", - build_file_content = "exports_files([\"msedgedriver\"])", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["msedgedriver"]) + +js_library( + name = "msedgedriver-js", + data = ["msedgedriver"], +) +""", ) http_archive( @@ -117,14 +202,19 @@ exports_files( url = "https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.58/linux64/chrome-linux64.zip", sha256 = "b020645b262a85d2cf9bc1e7be139afa175e6b7c18d38525cc4122d5ddf89771", build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + filegroup( name = "files", srcs = glob(["**/*"]), - visibility = ["//visibility:public"], ) -exports_files( - ["chrome-linux64/chrome"], +exports_files(["chrome-linux64/chrome"]) + +js_library( + name = "chrome-js", + data = [":files"], ) """, ) @@ -138,7 +228,17 @@ exports_files( "mv 'Google Chrome for Testing.app' Chrome.app", "mv 'Chrome.app/Contents/MacOS/Google Chrome for Testing' Chrome.app/Contents/MacOS/Chrome", ], - build_file_content = "exports_files([\"Chrome.app\"])", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["Chrome.app"])", + +js_library( + name = "chrome-js", + data = glob(["Chrome.app/**/*"]), +) +""", ) http_archive( @@ -146,7 +246,17 @@ exports_files( url = "https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.58/linux64/chromedriver-linux64.zip", sha256 = "accdaeb00d330d9d5a5ef91bbe6fa5d316a5562109231bbc65866fa1390d8a2b", strip_prefix = "chromedriver-linux64", - build_file_content = "exports_files([\"chromedriver\"])", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["chromedriver"]) + +js_library( + name = "chromedriver-js", + data = ["chromedriver"], +) +""", ) http_archive( @@ -154,5 +264,22 @@ exports_files( url = "https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.58/mac-x64/chromedriver-mac-x64.zip", sha256 = "c912db7b7c65d0bfcf7d17150782c0e89783bcba60521b4a66201fc81daffd91", strip_prefix = "chromedriver-mac-x64", - build_file_content = "exports_files([\"chromedriver\"])", + build_file_content = """ +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["chromedriver"]) + +js_library( + name = "chromedriver-js", + data = ["chromedriver"], +) +""", ) + +def _pin_browsers_extension_impl(_ctx): + pin_browsers() + +pin_browsers_extension = module_extension( + implementation = _pin_browsers_extension_impl, +) diff --git a/scripts/pinned_browsers.py b/scripts/pinned_browsers.py index 39aad6a4c6617..9d854f0fd38d9 100755 --- a/scripts/pinned_browsers.py +++ b/scripts/pinned_browsers.py @@ -63,7 +63,17 @@ def chromedriver(selected_version): url = "%s", sha256 = "%s", strip_prefix = "chromedriver-linux64", - build_file_content = "exports_files([\\"chromedriver\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["chromedriver"]) + +js_library( + name = "chromedriver-js", + data = ["chromedriver"], +) +\"\"\", ) """ % (linux, sha) @@ -79,7 +89,17 @@ def chromedriver(selected_version): url = "%s", sha256 = "%s", strip_prefix = "chromedriver-mac-x64", - build_file_content = "exports_files([\\"chromedriver\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["chromedriver"]) + +js_library( + name = "chromedriver-js", + data = ["chromedriver"], +) +\"\"\", ) """ % (mac, sha) @@ -100,14 +120,19 @@ def chrome(selected_version): url = "%s", sha256 = "%s", build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + filegroup( name = "files", srcs = glob(["**/*"]), - visibility = ["//visibility:public"], ) -exports_files( - ["chrome-linux64/chrome"], +exports_files(["chrome-linux64/chrome"]) + +js_library( + name = "chrome-js", + data = [":files"], ) \"\"\", ) @@ -129,7 +154,17 @@ def chrome(selected_version): "mv 'Google Chrome for Testing.app' Chrome.app", "mv 'Chrome.app/Contents/MacOS/Google Chrome for Testing' Chrome.app/Contents/MacOS/Chrome", ], - build_file_content = "exports_files([\\"Chrome.app\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["Chrome.app"])", + +js_library( + name = "chrome-js", + data = glob(["Chrome.app/**/*"]), +) +\"\"\", ) """ % ( @@ -176,7 +211,17 @@ def edge(): move = { "MicrosoftEdge-%s.pkg/Payload/Microsoft Edge.app": "Edge.app", }, - build_file_content = "exports_files([\\"Edge.app\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["Edge.app"])", + +js_library( + name = "edge-js", + data = glob(["Edge.app/**/*"]), +) +\"\"\" ) """ % ( mac, @@ -191,14 +236,19 @@ def edge(): url = "%s", sha256 = "%s", build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + filegroup( name = "files", srcs = glob(["**/*"]), - visibility = ["//visibility:public"], ) -exports_files( - ["opt/microsoft/msedge/microsoft-edge"], +exports_files(["opt/microsoft/msedge/microsoft-edge"]) + +js_library( + name = "edge-js", + data = [":files"], ) \"\"\", ) @@ -225,7 +275,17 @@ def edgedriver(): name = "linux_edgedriver", url = "%s", sha256 = "%s", - build_file_content = "exports_files([\\"msedgedriver\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["msedgedriver"]) + +js_library( + name = "msedgedriver-js", + data = ["msedgedriver"], +) +\"\"\", ) """ % (linux, sha) @@ -240,7 +300,17 @@ def edgedriver(): name = "mac_edgedriver", url = "%s", sha256 = "%s", - build_file_content = "exports_files([\\"msedgedriver\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["msedgedriver"]) + +js_library( + name = "msedgedriver-js", + data = ["msedgedriver"], +) +\"\"\", ) """ % (mac, sha) @@ -262,7 +332,17 @@ def geckodriver(): name = "linux_geckodriver", url = "%s", sha256 = "%s", - build_file_content = "exports_files([\\"geckodriver\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["geckodriver"]) + +js_library( + name = "geckodriver-js", + data = ["geckodriver"], +) +\"\"\", ) """ % (url, sha) @@ -278,7 +358,17 @@ def geckodriver(): name = "mac_geckodriver", url = "%s", sha256 = "%s", - build_file_content = "exports_files([\\"geckodriver\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["geckodriver"]) + +js_library( + name = "geckodriver-js", + data = ["geckodriver"], +) +\"\"\", ) """ % (url, sha) @@ -324,14 +414,19 @@ def print_firefox(version, workspace_name, sha_linux, sha_mac): url = "{firefox_linux(version)}", sha256 = "{sha_linux}", build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + filegroup( name = "files", srcs = glob(["**/*"]), - visibility = ["//visibility:public"], ) -exports_files( - ["firefox/firefox"], +exports_files(["firefox/firefox"]) + +js_library( + name = "firefox-js", + data = [":files"], ) \"\"\", ) @@ -345,7 +440,17 @@ def print_firefox(version, workspace_name, sha_linux, sha_mac): name = "mac_{workspace_name}firefox", url = "{firefox_mac(version)}", sha256 = "{sha_mac}", - build_file_content = "exports_files([\\"Firefox.app\\"])", + build_file_content = \"\"\" +load("@aspect_rules_js//js:defs.bzl", "js_library") +package(default_visibility = ["//visibility:public"]) + +exports_files(["Firefox.app"]) + +js_library( + name = "firefox-js", + data = glob(["Firefox.app/**/*"]), +) +\"\"\", ) """ @@ -364,7 +469,7 @@ def print_firefox(version, workspace_name, sha_linux, sha_mac): load("//common/private:pkg_archive.bzl", "pkg_archive") def pin_browsers(): - local_drivers() + local_drivers(name = "local_drivers") """ content = content + firefox() @@ -374,6 +479,14 @@ def pin_browsers(): chrome_milestone = get_chrome_milestone() content = content + chrome(chrome_milestone) content = content + chromedriver(chrome_milestone) + content += """ +def _pin_browsers_extension_impl(_ctx): + pin_browsers() + +pin_browsers_extension = module_extension( + implementation = _pin_browsers_extension_impl, +) +""" current_script_dir = Path(os.path.realpath(__file__)).parent target_file_path = current_script_dir.parent / "common/repositories.bzl"