豆豆友情提示:这是一个非官方 GitHub 代理镜像,主要用于网络测试或访问加速。请勿在此进行登录、注册或处理任何敏感信息。进行这些操作请务必访问官方网站 github.com。 Raw 内容也通过此代理提供。
Skip to content

Commit 0ffac18

Browse files
committed
feat(bazel): support browsers for m1 platform
1 parent 3c4e3ea commit 0ffac18

File tree

9 files changed

+159
-53
lines changed

9 files changed

+159
-53
lines changed

bazel/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ filegroup(
77
"//bazel/api-golden:files",
88
"//bazel/benchmark:files",
99
"//bazel/browsers:files",
10+
"//bazel/constraints:files",
1011
"//bazel/remote-execution:files",
1112
],
1213
visibility = ["//:npm"],

bazel/browsers/chromium/BUILD.bazel

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,19 @@ browser(
88
deps = [
99
"@io_bazel_rules_webtesting//go/wsl",
1010
] + select({
11-
"@io_bazel_rules_webtesting//common/conditions:linux": [
12-
"@org_chromium_chromedriver_amd64//:metadata",
13-
"@org_chromium_chromium_amd64//:metadata",
11+
"//bazel/constraints:linux_x64": [
12+
"@org_chromium_chromedriver_linux_x64//:metadata",
13+
"@org_chromium_chromium_linux_x64//:metadata",
1414
],
15-
"@io_bazel_rules_webtesting//common/conditions:mac": [
16-
"@org_chromium_chromedriver_macos//:metadata",
17-
"@org_chromium_chromium_macos//:metadata",
15+
"//bazel/constraints:macos_x64": [
16+
"@org_chromium_chromedriver_macos_x64//:metadata",
17+
"@org_chromium_chromium_macos_x64//:metadata",
1818
],
19-
"@io_bazel_rules_webtesting//common/conditions:windows": [
19+
"//bazel/constraints:macos_arm64": [
20+
"@org_chromium_chromedriver_macos_arm64//:metadata",
21+
"@org_chromium_chromium_macos_arm64//:metadata",
22+
],
23+
"//bazel/constraints:windows_x32": [
2024
"@org_chromium_chromedriver_windows//:metadata",
2125
"@org_chromium_chromium_windows//:metadata",
2226
],

bazel/browsers/chromium/chromium.bzl

Lines changed: 53 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,67 +10,94 @@ def define_chromium_repositories():
1010
# https://github.com/angular/dev-infra/blob/master/bazel/browsers/README.md.
1111

1212
browser_archive(
13-
name = "org_chromium_chromium_amd64",
13+
name = "org_chromium_chromium_linux_x64",
1414
licenses = ["notice"], # BSD 3-clause (maybe more?)
15-
sha256 = "e2ce3260ad798151b88ee6ce53027533f0a596c311d960a514e82bf87c217ab3",
16-
# 93.0.4532.0
15+
sha256 = "673ee08b4cfaff128ef0b4f7517acb6b6b25c9315fc6494ec328ab38aaf952d1",
16+
# 94.0.4578.0
1717
urls = [
18-
"https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/888689/chrome-linux.zip",
19-
"https://storage.googleapis.com/dev-infra-mirror/chromium/888689/chrome-linux.zip",
18+
"https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/902390/chrome-linux.zip",
19+
"https://storage.googleapis.com/dev-infra-mirror/chromium/902390/chrome-linux.zip",
2020
],
2121
named_files = {
2222
"CHROMIUM": "chrome-linux/chrome",
2323
},
2424
)
2525

2626
browser_archive(
27-
name = "org_chromium_chromium_macos",
27+
name = "org_chromium_chromium_macos_x64",
2828
licenses = ["notice"], # BSD 3-clause (maybe more?)
29-
sha256 = "46093b750f1efe5575bdb0a4dc8a229fbfaf5e1801f19c9480232c6ad3b35330",
30-
# 93.0.4532.0
29+
sha256 = "75f6bd26744368cd0fcbbec035766dea82e34def60e938fb48630be6799d46c7",
30+
# 94.0.4578.0
3131
urls = [
32-
"https://storage.googleapis.com/chromium-browser-snapshots/Mac/888689/chrome-mac.zip",
33-
"https://storage.googleapis.com/dev-infra-mirror/chromium/888689/chrome-mac.zip",
32+
"https://storage.googleapis.com/chromium-browser-snapshots/Mac/902390/chrome-mac.zip",
33+
"https://storage.googleapis.com/dev-infra-mirror/chromium/902390/chrome-mac_x64.zip",
3434
],
3535
named_files = {
36-
"CHROMIUM": "chrome-mac/Chromium.app/Contents/MacOS/chromium",
36+
"CHROMIUM": "chrome-mac/Chromium.app/Contents/MacOS/Chromium",
37+
},
38+
)
39+
40+
browser_archive(
41+
name = "org_chromium_chromium_macos_arm64",
42+
licenses = ["notice"], # BSD 3-clause (maybe more?)
43+
sha256 = "4845ce895d030aeb8bfd877a599f1f07d8c7a77d1e08513e80e60bb0093fca24",
44+
# 94.0.4578.0
45+
urls = [
46+
"https://storage.googleapis.com/chromium-browser-snapshots/Mac_Arm/902390/chrome-mac.zip",
47+
"https://storage.googleapis.com/dev-infra-mirror/chromium/902390/chrome-mac_arm64.zip",
48+
],
49+
named_files = {
50+
"CHROMIUM": "chrome-mac/Chromium.app/Contents/MacOS/Chromium",
3751
},
3852
)
3953

4054
browser_archive(
4155
name = "org_chromium_chromium_windows",
4256
licenses = ["notice"], # BSD 3-clause (maybe more?)
43-
sha256 = "27398cdf31bcb070e60f0339330c4ebd9ff44f62c76b55b39c2b329e0ce63f58",
44-
# 93.0.4532.0
57+
sha256 = "8919cd2f8a4676af4acc50d022b6a946a5b21a5fec4e078b0ebb0c8e18f1ce90",
58+
# 94.0.4578.0
4559
urls = [
46-
"https://storage.googleapis.com/chromium-browser-snapshots/Win/888689/chrome-win.zip",
47-
"https://storage.googleapis.com/dev-infra-mirror/chromium/888689/chrome-win.zip",
60+
"https://storage.googleapis.com/chromium-browser-snapshots/Win/902390/chrome-win.zip",
61+
"https://storage.googleapis.com/dev-infra-mirror/chromium/902390/chrome-win.zip",
4862
],
4963
named_files = {
5064
"CHROMIUM": "chrome-win/chrome.exe",
5165
},
5266
)
5367

5468
browser_archive(
55-
name = "org_chromium_chromedriver_amd64",
69+
name = "org_chromium_chromedriver_linux_x64",
5670
licenses = ["reciprocal"], # BSD 3-clause, ICU, MPL 1.1, libpng (BSD/MIT-like), Academic Free License v. 2.0, BSD 2-clause, MIT
57-
sha256 = "f898364b4e237101748ef9bb6a44715b3840422270bdca25f0a98eba2eb8d732",
71+
sha256 = "1d2e73a19632031f5de876916e12b497d5b0e3dc83d1ce2fbe8665061adfd114",
5872
urls = [
59-
"https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/888689/chromedriver_linux64.zip",
60-
"https://storage.googleapis.com/dev-infra-mirror/chromium/888689/chromedriver_linux64.zip",
73+
"https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/902390/chromedriver_linux64.zip",
74+
"https://storage.googleapis.com/dev-infra-mirror/chromium/902390/chromedriver_linux64.zip",
6175
],
6276
named_files = {
6377
"CHROMEDRIVER": "chromedriver_linux64/chromedriver",
6478
},
6579
)
6680

6781
browser_archive(
68-
name = "org_chromium_chromedriver_macos",
82+
name = "org_chromium_chromedriver_macos_x64",
83+
licenses = ["reciprocal"], # BSD 3-clause, ICU, MPL 1.1, libpng (BSD/MIT-like), Academic Free License v. 2.0, BSD 2-clause, MIT
84+
sha256 = "36cc50c5194767b043913534f6ec16a7d7a85636b319729a67ffff486b30a5f6",
85+
urls = [
86+
"https://storage.googleapis.com/chromium-browser-snapshots/Mac/902390/chromedriver_mac64.zip",
87+
"https://storage.googleapis.com/dev-infra-mirror/chromium/902390/chromedriver_mac_x64.zip",
88+
],
89+
named_files = {
90+
"CHROMEDRIVER": "chromedriver_mac64/chromedriver",
91+
},
92+
)
93+
94+
browser_archive(
95+
name = "org_chromium_chromedriver_macos_arm64",
6996
licenses = ["reciprocal"], # BSD 3-clause, ICU, MPL 1.1, libpng (BSD/MIT-like), Academic Free License v. 2.0, BSD 2-clause, MIT
70-
sha256 = "c297fa1a3dccdf40cf4c7b67ca302eca135aac09a67dfddc57f25b93cea0835c",
97+
sha256 = "1f100aacf4bab4b3ac4218ecf654b17d66f2e07dd455f887bb3d9aa8d21862e1",
7198
urls = [
72-
"https://storage.googleapis.com/chromium-browser-snapshots/Mac/888689/chromedriver_mac64.zip",
73-
"https://storage.googleapis.com/dev-infra-mirror/chromium/888689/chromedriver_mac64.zip",
99+
"https://storage.googleapis.com/chromium-browser-snapshots/Mac_Arm/902390/chromedriver_mac64.zip",
100+
"https://storage.googleapis.com/dev-infra-mirror/chromium/902390/chromedriver_mac_arm64.zip",
74101
],
75102
named_files = {
76103
"CHROMEDRIVER": "chromedriver_mac64/chromedriver",
@@ -80,10 +107,10 @@ def define_chromium_repositories():
80107
browser_archive(
81108
name = "org_chromium_chromedriver_windows",
82109
licenses = ["reciprocal"], # BSD 3-clause, ICU, MPL 1.1, libpng (BSD/MIT-like), Academic Free License v. 2.0, BSD 2-clause, MIT
83-
sha256 = "2f2bd5f090f605797d81a50684daf9e84ffc5d049ca1341c3b9c3801daf37e86",
110+
sha256 = "48392698f2ba338a0b9192f7c2154058a0b0b926aef0a5ef22aa6706b2bbc7b6",
84111
urls = [
85-
"https://storage.googleapis.com/chromium-browser-snapshots/Win/888689/chromedriver_win32.zip",
86-
"https://storage.googleapis.com/dev-infra-mirror/chromium/888689/chromedriver_win32.zip",
112+
"https://storage.googleapis.com/chromium-browser-snapshots/Win/902390/chromedriver_win32.zip",
113+
"https://storage.googleapis.com/dev-infra-mirror/chromium/902390/chromedriver_win32.zip",
87114
],
88115
named_files = {
89116
"CHROMEDRIVER": "chromedriver_win32/chromedriver.exe",

bazel/browsers/chromium/find-stable-revision-for-all-platforms.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,25 @@ import {Spinner} from '../../../ng-dev/utils/spinner';
3535
* See: https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html.
3636
*/
3737
enum BrowserPlatform {
38-
LINUX = 'Linux_x64',
39-
MAC = 'Mac',
38+
LINUX_X64 = 'Linux_x64',
39+
MAC_X64 = 'Mac',
40+
MAC_ARM64 = 'Mac_Arm',
4041
WINDOWS = 'Win',
4142
}
4243

4344
/** Maps a browser platform to the archive file containing the browser binary. */
4445
const PlatformBrowserArchiveMap = {
45-
[BrowserPlatform.LINUX]: 'chrome-linux.zip',
46-
[BrowserPlatform.MAC]: 'chrome-mac.zip',
46+
[BrowserPlatform.LINUX_X64]: 'chrome-linux.zip',
47+
[BrowserPlatform.MAC_X64]: 'chrome-mac.zip',
48+
[BrowserPlatform.MAC_ARM64]: 'chrome-mac.zip',
4749
[BrowserPlatform.WINDOWS]: 'chrome-win.zip',
4850
};
4951

5052
/** Maps a browser platform to the archive file containing the driver. */
5153
const PlatformDriverArchiveMap = {
52-
[BrowserPlatform.LINUX]: 'chromedriver_linux64.zip',
53-
[BrowserPlatform.MAC]: 'chromedriver_mac64.zip',
54+
[BrowserPlatform.LINUX_X64]: 'chromedriver_linux64.zip',
55+
[BrowserPlatform.MAC_X64]: 'chromedriver_mac64.zip',
56+
[BrowserPlatform.MAC_ARM64]: 'chromedriver_mac64.zip',
5457
[BrowserPlatform.WINDOWS]: 'chromedriver_win32.zip',
5558
};
5659

@@ -101,12 +104,12 @@ async function main(explicitStartRevision: number | null): Promise<void> {
101104
);
102105
console.info(
103106
' '.repeat(15),
104-
getSha256ChecksumForPlatform(availableRevision, platform, 'browser'),
107+
await getSha256ChecksumForPlatform(availableRevision, platform, 'browser'),
105108
);
106109
console.info(' '.repeat(10), getRevisionArchiveUrl(availableRevision, platform, 'driver'));
107110
console.info(
108111
' '.repeat(15),
109-
getSha256ChecksumForPlatform(availableRevision, platform, 'driver'),
112+
await getSha256ChecksumForPlatform(availableRevision, platform, 'driver'),
110113
);
111114
console.info();
112115
}

bazel/browsers/firefox/BUILD.bazel

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,31 @@ browser(
77
disabled = select({
88
# TODO: Consider adding support for Windows. Requires a portable version of
99
# Firefox. Official distribution only ships with installers.
10-
"@io_bazel_rules_webtesting//common/conditions:windows": "Firefox is not supported on Windows",
10+
"//bazel/constraints:windows_x32": "Firefox is not disabled on Windows but always passing",
11+
"//bazel/constraints:windows_x64": "Firefox is not disabled on Windows but always passing",
12+
# Note: We keep always keep others enabled. This will result in proper errors if e.g. a
13+
# linux arm64 machine intends to run tests with Firefox but we miss binaries for the platform.
1114
"//conditions:default": None,
1215
}),
1316
metadata = "firefox.json",
1417
deps = [
1518
"@io_bazel_rules_webtesting//go/wsl",
1619
] + select({
17-
"@io_bazel_rules_webtesting//common/conditions:linux": [
18-
"@org_mozilla_firefox_amd64//:metadata",
19-
"@org_mozilla_geckodriver_amd64//:metadata",
20+
"//bazel/constraints:linux_x64": [
21+
"@org_mozilla_firefox_linux_x64//:metadata",
22+
"@org_mozilla_geckodriver_linux_x64//:metadata",
2023
],
21-
"@io_bazel_rules_webtesting//common/conditions:mac": [
24+
"//bazel/constraints:macos_x64": [
25+
# Firefox has a launcher that conditionally starts x64/arm64
2226
"@org_mozilla_firefox_macos//:metadata",
23-
"@org_mozilla_geckodriver_macos//:metadata",
27+
"@org_mozilla_geckodriver_macos_x64//:metadata",
2428
],
25-
"@io_bazel_rules_webtesting//common/conditions:windows": [],
29+
"//bazel/constraints:macos_arm64": [
30+
# Firefox has a launcher that conditionally starts x64/arm64
31+
"@org_mozilla_firefox_macos//:metadata",
32+
"@org_mozilla_geckodriver_macos_arm64//:metadata",
33+
],
34+
"//conditions:default": [],
2635
}),
2736
)
2837

bazel/browsers/firefox/firefox.bzl

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def define_firefox_repositories():
1010
# next to this file.
1111

1212
browser_archive(
13-
name = "org_mozilla_firefox_amd64",
13+
name = "org_mozilla_firefox_linux_x64",
1414
licenses = ["reciprocal"], # MPL 2.0
1515
sha256 = "998607f028043b3780f296eee03027279ef059acab5b50f9754df2bd69ca42b3",
1616
# Firefox v90.0.1
@@ -24,6 +24,7 @@ def define_firefox_repositories():
2424
)
2525

2626
browser_archive(
27+
# Firefox has a launcher that conditionally starts x64/arm64
2728
name = "org_mozilla_firefox_macos",
2829
licenses = ["reciprocal"], # MPL 2.0
2930
sha256 = "76c1b9c42b52c7e5be4c112a98b7d3762a18841367f778a179679ac0de751f05",
@@ -38,7 +39,7 @@ def define_firefox_repositories():
3839
)
3940

4041
browser_archive(
41-
name = "org_mozilla_geckodriver_amd64",
42+
name = "org_mozilla_geckodriver_linux_x64",
4243
licenses = ["reciprocal"], # MPL 2.0
4344
sha256 = "ec164910a3de7eec71e596bd2a1814ae27ba4c9d112b611680a6470dbe2ce27b",
4445
# Geckodriver v0.29.1
@@ -52,7 +53,7 @@ def define_firefox_repositories():
5253
)
5354

5455
browser_archive(
55-
name = "org_mozilla_geckodriver_macos",
56+
name = "org_mozilla_geckodriver_macos_x64",
5657
licenses = ["reciprocal"], # MPL 2.0
5758
sha256 = "9929c804ad0157ca13fdafca808866c88815b658e7059280a9f08f7e70364963",
5859
# Geckodriver v0.29.1
@@ -64,3 +65,17 @@ def define_firefox_repositories():
6465
"GECKODRIVER": "geckodriver",
6566
},
6667
)
68+
69+
browser_archive(
70+
name = "org_mozilla_geckodriver_macos_arm64",
71+
licenses = ["reciprocal"], # MPL 2.0
72+
sha256 = "a1ec058b930fbfb684e30071ea47eec61bc18acb489914a9e0d095ede6088eea",
73+
# Geckodriver v0.29.1
74+
urls = [
75+
"https://github.com/mozilla/geckodriver/releases/download/v0.29.1/geckodriver-v0.29.1-macos-aarch64.tar.gz",
76+
"https://storage.googleapis.com/dev-infra-mirror/mozilla/geckodriver/0.29.1/geckodriver-v0.29.1-macos-aarch64.tar.gz",
77+
],
78+
named_files = {
79+
"GECKODRIVER": "geckodriver",
80+
},
81+
)

bazel/constraints/BUILD.bazel

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package(default_visibility = ["//visibility:public"])
2+
3+
config_setting(
4+
name = "linux_x64",
5+
constraint_values = [
6+
"@platforms//os:linux",
7+
"@platforms//cpu:x86_64",
8+
],
9+
)
10+
11+
config_setting(
12+
name = "macos_x64",
13+
constraint_values = [
14+
"@platforms//os:macos",
15+
"@platforms//cpu:x86_64",
16+
],
17+
)
18+
19+
config_setting(
20+
name = "macos_arm64",
21+
constraint_values = [
22+
"@platforms//os:macos",
23+
"@platforms//cpu:aarch64",
24+
],
25+
)
26+
27+
config_setting(
28+
name = "windows_x64",
29+
constraint_values = [
30+
"@platforms//os:windows",
31+
"@platforms//cpu:x86_64",
32+
],
33+
)
34+
35+
config_setting(
36+
name = "windows_x32",
37+
constraint_values = [
38+
"@platforms//os:windows",
39+
"@platforms//cpu:x86_32",
40+
],
41+
)
42+
43+
# Make source files available for distribution via pkg_npm
44+
filegroup(
45+
name = "files",
46+
srcs = glob(["*"]),
47+
)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"rollup-plugin-sourcemaps": "^0.6.3",
5353
"selenium-webdriver": "3.5.0",
5454
"semver": "^7.3.5",
55-
"ts-node": "^10.0.0",
55+
"ts-node": "^10.2.1",
5656
"tslib": "^2.3.0",
5757
"tslint": "^6.1.3",
5858
"typed-graphqlify": "^3.1.1",

yarn.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2904,7 +2904,7 @@ trim-off-newlines@^1.0.0:
29042904
resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3"
29052905
integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM=
29062906

2907-
ts-node@^10.0.0:
2907+
ts-node@^10.2.1:
29082908
version "10.2.1"
29092909
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.2.1.tgz#4cc93bea0a7aba2179497e65bb08ddfc198b3ab5"
29102910
integrity sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==

0 commit comments

Comments
 (0)