Skip to content

Commit 355f8a8

Browse files
authored
fix: ungate server resource staging
Stage BrowserOS and BrowserClaw server resources for every product while retaining OS/arch filters. This lets Chromium GN targets consume whichever server resource bundle the build flags select, including package-all-resource builds. The final package/sign paths still use product descriptors to decide what ships. Also stabilize the BrowserClaw context tests by pinning their macOS app-name expectation to the macOS platform branch, which keeps the Linux CI job deterministic.
1 parent 8143837 commit 355f8a8

5 files changed

Lines changed: 73 additions & 51 deletions

File tree

packages/browseros/bos_build/config/copy_resources.yaml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,39 +93,34 @@ copy_operations:
9393
source: "resources/binaries/browseros_server/darwin-arm64/resources"
9494
destination: "chrome/browser/browseros/server/resources"
9595
type: "directory"
96-
product: ["browseros"]
9796
os: ["macos"]
9897
arch: ["arm64"]
9998

10099
- name: "BrowserOS Server Resources - macOS x64"
101100
source: "resources/binaries/browseros_server/darwin-x64/resources"
102101
destination: "chrome/browser/browseros/server/resources"
103102
type: "directory"
104-
product: ["browseros"]
105103
os: ["macos"]
106104
arch: ["x64"]
107105

108106
- name: "BrowserOS Server Resources - Linux ARM64"
109107
source: "resources/binaries/browseros_server/linux-arm64/resources"
110108
destination: "chrome/browser/browseros/server/resources"
111109
type: "directory"
112-
product: ["browseros"]
113110
os: ["linux"]
114111
arch: ["arm64"]
115112

116113
- name: "BrowserOS Server Resources - Linux x64"
117114
source: "resources/binaries/browseros_server/linux-x64/resources"
118115
destination: "chrome/browser/browseros/server/resources"
119116
type: "directory"
120-
product: ["browseros"]
121117
os: ["linux"]
122118
arch: ["x64"]
123119

124120
- name: "BrowserOS Server Resources - Windows x64"
125121
source: "resources/binaries/browseros_server/windows-x64/resources"
126122
destination: "chrome/browser/browseros/server/resources"
127123
type: "directory"
128-
product: ["browseros"]
129124
os: ["windows"]
130125
arch: ["x64"]
131126

@@ -134,38 +129,33 @@ copy_operations:
134129
source: "resources/binaries/browseros_claw_server/darwin-arm64/resources"
135130
destination: "chrome/browser/browseros/claw_server/resources"
136131
type: "directory"
137-
product: ["browserclaw"]
138132
os: ["macos"]
139133
arch: ["arm64"]
140134

141135
- name: "BrowserOS Claw Server Resources - macOS x64"
142136
source: "resources/binaries/browseros_claw_server/darwin-x64/resources"
143137
destination: "chrome/browser/browseros/claw_server/resources"
144138
type: "directory"
145-
product: ["browserclaw"]
146139
os: ["macos"]
147140
arch: ["x64"]
148141

149142
- name: "BrowserOS Claw Server Resources - Linux ARM64"
150143
source: "resources/binaries/browseros_claw_server/linux-arm64/resources"
151144
destination: "chrome/browser/browseros/claw_server/resources"
152145
type: "directory"
153-
product: ["browserclaw"]
154146
os: ["linux"]
155147
arch: ["arm64"]
156148

157149
- name: "BrowserOS Claw Server Resources - Linux x64"
158150
source: "resources/binaries/browseros_claw_server/linux-x64/resources"
159151
destination: "chrome/browser/browseros/claw_server/resources"
160152
type: "directory"
161-
product: ["browserclaw"]
162153
os: ["linux"]
163154
arch: ["x64"]
164155

165156
- name: "BrowserOS Claw Server Resources - Windows x64"
166157
source: "resources/binaries/browseros_claw_server/windows-x64/resources"
167158
destination: "chrome/browser/browseros/claw_server/resources"
168159
type: "directory"
169-
product: ["browserclaw"]
170160
os: ["windows"]
171161
arch: ["x64"]

packages/browseros/bos_build/config/download_resources.yaml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,39 +39,34 @@ download_operations:
3939
r2_key: "artifacts/server/latest/browseros-server-resources-darwin-arm64.zip"
4040
destination: "resources/binaries/browseros_server/darwin-arm64"
4141
download_type: "artifact_zip"
42-
product: ["browseros"]
4342
os: ["macos"]
4443
arch: ["arm64"]
4544

4645
- name: "BrowserOS Server Resources - macOS x64"
4746
r2_key: "artifacts/server/latest/browseros-server-resources-darwin-x64.zip"
4847
destination: "resources/binaries/browseros_server/darwin-x64"
4948
download_type: "artifact_zip"
50-
product: ["browseros"]
5149
os: ["macos"]
5250
arch: ["x64"]
5351

5452
- name: "BrowserOS Server Resources - Linux ARM64"
5553
r2_key: "artifacts/server/latest/browseros-server-resources-linux-arm64.zip"
5654
destination: "resources/binaries/browseros_server/linux-arm64"
5755
download_type: "artifact_zip"
58-
product: ["browseros"]
5956
os: ["linux"]
6057
arch: ["arm64"]
6158

6259
- name: "BrowserOS Server Resources - Linux x64"
6360
r2_key: "artifacts/server/latest/browseros-server-resources-linux-x64.zip"
6461
destination: "resources/binaries/browseros_server/linux-x64"
6562
download_type: "artifact_zip"
66-
product: ["browseros"]
6763
os: ["linux"]
6864
arch: ["x64"]
6965

7066
- name: "BrowserOS Server Resources - Windows x64"
7167
r2_key: "artifacts/server/latest/browseros-server-resources-windows-x64.zip"
7268
destination: "resources/binaries/browseros_server/windows-x64"
7369
download_type: "artifact_zip"
74-
product: ["browseros"]
7570
os: ["windows"]
7671
arch: ["x64"]
7772

@@ -80,38 +75,33 @@ download_operations:
8075
r2_key: "claw-server/prod-resources/latest/browseros-claw-server-resources-darwin-arm64.zip"
8176
destination: "resources/binaries/browseros_claw_server/darwin-arm64"
8277
download_type: "artifact_zip"
83-
product: ["browserclaw"]
8478
os: ["macos"]
8579
arch: ["arm64"]
8680

8781
- name: "BrowserOS Claw Server Resources - macOS x64"
8882
r2_key: "claw-server/prod-resources/latest/browseros-claw-server-resources-darwin-x64.zip"
8983
destination: "resources/binaries/browseros_claw_server/darwin-x64"
9084
download_type: "artifact_zip"
91-
product: ["browserclaw"]
9285
os: ["macos"]
9386
arch: ["x64"]
9487

9588
- name: "BrowserOS Claw Server Resources - Linux ARM64"
9689
r2_key: "claw-server/prod-resources/latest/browseros-claw-server-resources-linux-arm64.zip"
9790
destination: "resources/binaries/browseros_claw_server/linux-arm64"
9891
download_type: "artifact_zip"
99-
product: ["browserclaw"]
10092
os: ["linux"]
10193
arch: ["arm64"]
10294

10395
- name: "BrowserOS Claw Server Resources - Linux x64"
10496
r2_key: "claw-server/prod-resources/latest/browseros-claw-server-resources-linux-x64.zip"
10597
destination: "resources/binaries/browseros_claw_server/linux-x64"
10698
download_type: "artifact_zip"
107-
product: ["browserclaw"]
10899
os: ["linux"]
109100
arch: ["x64"]
110101

111102
- name: "BrowserOS Claw Server Resources - Windows x64"
112103
r2_key: "claw-server/prod-resources/latest/browseros-claw-server-resources-windows-x64.zip"
113104
destination: "resources/binaries/browseros_claw_server/windows-x64"
114105
download_type: "artifact_zip"
115-
product: ["browserclaw"]
116106
os: ["windows"]
117107
arch: ["x64"]

packages/browseros/bos_build/core/context_test.py

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import unittest
66
from pathlib import Path
77
from typing import cast
8+
from unittest import mock
89

10+
from . import context as context_mod
911
from .context import Context
1012
from .products import ProductDescriptor, get_product_descriptor
1113

@@ -72,35 +74,43 @@ def test_fixed_app_path_short_circuits_resolution(self):
7274
self.assertEqual(ctx.get_app_path(), pinned)
7375

7476
def test_browserclaw_context_derives_names_and_paths(self):
75-
ctx = Context(
76-
chromium_src=Path("/nonexistent-src"),
77-
architecture="arm64",
78-
build_type="release",
79-
product=get_product_descriptor("browserclaw"),
80-
)
77+
with (
78+
mock.patch.object(context_mod, "IS_MACOS", return_value=True),
79+
mock.patch.object(context_mod, "IS_WINDOWS", return_value=False),
80+
):
81+
ctx = Context(
82+
chromium_src=Path("/nonexistent-src"),
83+
architecture="arm64",
84+
build_type="release",
85+
product=get_product_descriptor("browserclaw"),
86+
)
8187

82-
self.assertEqual(ctx.BROWSEROS_APP_BASE_NAME, "BrowserClaw")
83-
self.assertEqual(ctx.BROWSEROS_APP_NAME, "BrowserClaw.app")
84-
self.assertEqual(ctx.out_dir, "out/Default_browserclaw_arm64")
85-
self.assertEqual(
86-
ctx.get_artifact_name("dmg"),
87-
f"BrowserClaw_v{ctx.semantic_version}_arm64.dmg",
88-
)
89-
self.assertEqual(
90-
ctx.get_release_path("macos"),
91-
f"releases/browserclaw/{ctx.semantic_version}/macos/",
92-
)
88+
self.assertEqual(ctx.BROWSEROS_APP_BASE_NAME, "BrowserClaw")
89+
self.assertEqual(ctx.BROWSEROS_APP_NAME, "BrowserClaw.app")
90+
self.assertEqual(ctx.out_dir, "out/Default_browserclaw_arm64")
91+
self.assertEqual(
92+
ctx.get_artifact_name("dmg"),
93+
f"BrowserClaw_v{ctx.semantic_version}_arm64.dmg",
94+
)
95+
self.assertEqual(
96+
ctx.get_release_path("macos"),
97+
f"releases/browserclaw/{ctx.semantic_version}/macos/",
98+
)
9399

94100
def test_context_accepts_product_id(self):
95-
ctx = Context(
96-
chromium_src=Path("/nonexistent-src"),
97-
architecture="arm64",
98-
build_type="release",
99-
product=cast(ProductDescriptor, "browserclaw"),
100-
)
101+
with (
102+
mock.patch.object(context_mod, "IS_MACOS", return_value=True),
103+
mock.patch.object(context_mod, "IS_WINDOWS", return_value=False),
104+
):
105+
ctx = Context(
106+
chromium_src=Path("/nonexistent-src"),
107+
architecture="arm64",
108+
build_type="release",
109+
product=cast(ProductDescriptor, "browserclaw"),
110+
)
101111

102-
self.assertEqual(ctx.product.id, "browserclaw")
103-
self.assertEqual(ctx.BROWSEROS_APP_NAME, "BrowserClaw.app")
112+
self.assertEqual(ctx.product.id, "browserclaw")
113+
self.assertEqual(ctx.BROWSEROS_APP_NAME, "BrowserClaw.app")
104114

105115
def test_context_accepts_product_id_string(self):
106116
ctx = Context(

packages/browseros/bos_build/steps/resources/resources_test.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ def test_missing_source_is_tolerated(self):
187187

188188
self.assertFalse((self.chromium.src / "chrome" / "ghost").exists())
189189

190-
def test_real_config_copies_browseros_server_for_browseros_product(self):
190+
def test_real_config_copies_server_resources_for_browseros_product(self):
191191
self.root.write_copy_config(self._real_copy_config())
192192
browseros_source = (
193193
self.root.root
@@ -240,9 +240,9 @@ def test_real_config_copies_browseros_server_for_browseros_product(self):
240240
/ "browseros-claw-server"
241241
)
242242
self.assertEqual(browseros_dest.read_text(), "browseros")
243-
self.assertFalse(claw_dest.exists())
243+
self.assertEqual(claw_dest.read_text(), "claw")
244244

245-
def test_real_config_copies_claw_server_for_browserclaw_product(self):
245+
def test_real_config_copies_server_resources_for_browserclaw_product(self):
246246
self.root.write_copy_config(self._real_copy_config())
247247
browseros_source = (
248248
self.root.root
@@ -295,7 +295,7 @@ def test_real_config_copies_claw_server_for_browserclaw_product(self):
295295
/ "bin"
296296
/ "browseros-claw-server"
297297
)
298-
self.assertFalse(browseros_dest.exists())
298+
self.assertEqual(browseros_dest.read_text(), "browseros")
299299
self.assertEqual(claw_dest.read_text(), "claw")
300300

301301
def _real_copy_config(self) -> dict:

packages/browseros/bos_build/steps/storage/download_test.py

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def _build_metadata(self, files: dict[str, bytes]) -> dict:
199199

200200

201201
class DownloadResourceConfigTest(unittest.TestCase):
202-
def test_real_config_includes_browseros_artifacts_by_target(self) -> None:
202+
def test_real_config_includes_server_artifacts_by_target(self) -> None:
203203
cases = [
204204
(
205205
"macos",
@@ -210,6 +210,11 @@ def test_real_config_includes_browseros_artifacts_by_target(self) -> None:
210210
"artifacts/server/latest/browseros-server-resources-darwin-arm64.zip",
211211
"resources/binaries/browseros_server/darwin-arm64",
212212
),
213+
(
214+
"BrowserOS Claw Server Resources - macOS ARM64",
215+
"claw-server/prod-resources/latest/browseros-claw-server-resources-darwin-arm64.zip",
216+
"resources/binaries/browseros_claw_server/darwin-arm64",
217+
),
213218
],
214219
),
215220
(
@@ -221,6 +226,11 @@ def test_real_config_includes_browseros_artifacts_by_target(self) -> None:
221226
"artifacts/server/latest/browseros-server-resources-darwin-x64.zip",
222227
"resources/binaries/browseros_server/darwin-x64",
223228
),
229+
(
230+
"BrowserOS Claw Server Resources - macOS x64",
231+
"claw-server/prod-resources/latest/browseros-claw-server-resources-darwin-x64.zip",
232+
"resources/binaries/browseros_claw_server/darwin-x64",
233+
),
224234
],
225235
),
226236
(
@@ -232,6 +242,11 @@ def test_real_config_includes_browseros_artifacts_by_target(self) -> None:
232242
"artifacts/server/latest/browseros-server-resources-linux-arm64.zip",
233243
"resources/binaries/browseros_server/linux-arm64",
234244
),
245+
(
246+
"BrowserOS Claw Server Resources - Linux ARM64",
247+
"claw-server/prod-resources/latest/browseros-claw-server-resources-linux-arm64.zip",
248+
"resources/binaries/browseros_claw_server/linux-arm64",
249+
),
235250
],
236251
),
237252
(
@@ -243,6 +258,11 @@ def test_real_config_includes_browseros_artifacts_by_target(self) -> None:
243258
"artifacts/server/latest/browseros-server-resources-linux-x64.zip",
244259
"resources/binaries/browseros_server/linux-x64",
245260
),
261+
(
262+
"BrowserOS Claw Server Resources - Linux x64",
263+
"claw-server/prod-resources/latest/browseros-claw-server-resources-linux-x64.zip",
264+
"resources/binaries/browseros_claw_server/linux-x64",
265+
),
246266
],
247267
),
248268
(
@@ -254,6 +274,11 @@ def test_real_config_includes_browseros_artifacts_by_target(self) -> None:
254274
"artifacts/server/latest/browseros-server-resources-windows-x64.zip",
255275
"resources/binaries/browseros_server/windows-x64",
256276
),
277+
(
278+
"BrowserOS Claw Server Resources - Windows x64",
279+
"claw-server/prod-resources/latest/browseros-claw-server-resources-windows-x64.zip",
280+
"resources/binaries/browseros_claw_server/windows-x64",
281+
),
257282
],
258283
),
259284
]
@@ -278,11 +303,13 @@ def test_real_config_includes_both_macos_arches_for_universal(self) -> None:
278303
[
279304
"BrowserOS Server Resources - macOS ARM64",
280305
"BrowserOS Server Resources - macOS x64",
306+
"BrowserOS Claw Server Resources - macOS ARM64",
307+
"BrowserOS Claw Server Resources - macOS x64",
281308
],
282309
[op["name"] for op in filtered],
283310
)
284311

285-
def test_real_config_includes_claw_artifacts_for_browserclaw_product(self) -> None:
312+
def test_real_config_includes_server_artifacts_for_browserclaw_product(self) -> None:
286313
operations = self._real_download_operations()
287314

288315
filtered = self._filter_operations(
@@ -291,6 +318,11 @@ def test_real_config_includes_claw_artifacts_for_browserclaw_product(self) -> No
291318

292319
self.assertEqual(
293320
[
321+
(
322+
"BrowserOS Server Resources - macOS ARM64",
323+
"artifacts/server/latest/browseros-server-resources-darwin-arm64.zip",
324+
"resources/binaries/browseros_server/darwin-arm64",
325+
),
294326
(
295327
"BrowserOS Claw Server Resources - macOS ARM64",
296328
"claw-server/prod-resources/latest/browseros-claw-server-resources-darwin-arm64.zip",

0 commit comments

Comments
 (0)