@@ -275,6 +275,7 @@ def test_macos_release_sets_up_ci_keychain_before_build_and_cleans_up(self):
275275
276276 self .assertIn ("MACOS_CERTIFICATE_P12" , secrets )
277277 self .assertIn ("MACOS_CERTIFICATE_PWD" , secrets )
278+ self .assertIn ("PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_B64" , secrets )
278279 self .assertLess (setup_index , build_index )
279280 self .assertLess (build_index , cleanup_index )
280281 self .assertLess (cleanup_index , upload_index )
@@ -285,6 +286,7 @@ def test_macos_release_sets_up_ci_keychain_before_build_and_cleans_up(self):
285286 "MACOS_CERTIFICATE_P12" ,
286287 "MACOS_CERTIFICATE_PWD" ,
287288 "MACOS_KEYCHAIN_PASSWORD" ,
289+ "PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_B64" ,
288290 ):
289291 self .assertEqual (setup ["env" ][name ], f"${{{{ secrets.{ name } }}}}" )
290292 self .assertEqual (
@@ -295,6 +297,10 @@ def test_macos_release_sets_up_ci_keychain_before_build_and_cleans_up(self):
295297 build ["env" ]["MACOS_CERTIFICATE_NAME" ],
296298 "${{ steps.macos_signing.outputs.codesign_identity }}" ,
297299 )
300+ self .assertEqual (
301+ build ["env" ]["PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_PATH" ],
302+ "${{ steps.macos_signing.outputs.passkey_profile_path }}" ,
303+ )
298304 self .assertEqual (cleanup ["if" ], "always()" )
299305 self .assertEqual (
300306 cleanup ["env" ]["MACOS_SIGNING_STATE_PATH" ],
@@ -1847,6 +1853,21 @@ def test_internal_builder_uses_reservation_and_frozen_artifact_source(self):
18471853 build ["env" ]["ONBOARDING_RESOURCE_VERSION" ],
18481854 "${{ inputs.onboarding_version }}" ,
18491855 )
1856+ self .assertIn (
1857+ "PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_B64" ,
1858+ triggers ["workflow_call" ]["secrets" ],
1859+ )
1860+ setup = self .named_step (
1861+ workflow , "build" , "Import macOS signing certificate"
1862+ )
1863+ self .assertEqual (
1864+ setup ["env" ]["PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_B64" ],
1865+ "${{ secrets.PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_B64 }}" ,
1866+ )
1867+ self .assertEqual (
1868+ build ["env" ]["PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_PATH" ],
1869+ "${{ steps.macos_signing.outputs.passkey_profile_path }}" ,
1870+ )
18501871 self .assertNotIn ("BROWSERCLAW_ONBOARD_RESOURCE_VERSION" , build ["env" ])
18511872 for secret in (
18521873 "R2_ACCESS_KEY_ID" ,
@@ -2432,6 +2453,7 @@ def test_setup_imports_p12_and_cleanup_restores_keychain_state(self):
24322453 smoke_path = self .runner_temp / "browseros-ci-codesign-smoke-123-4"
24332454
24342455 self .assertEqual (outputs ["codesign_identity" ], self .identity_sha1 )
2456+ self .assertEqual (outputs ["passkey_profile_path" ], "" )
24352457 self .assertTrue (keychain_path .exists ())
24362458 self .assertTrue (state_path .exists ())
24372459 self .assertFalse (cert_path .exists ())
@@ -2467,6 +2489,28 @@ def test_setup_imports_p12_and_cleanup_restores_keychain_state(self):
24672489 self .assertFalse (keychain_path .exists ())
24682490 self .assertFalse (state_path .exists ())
24692491
2492+ def test_setup_decodes_passkey_profile_and_cleanup_removes_it (self ):
2493+ result = self ._run_helper (
2494+ "setup" ,
2495+ PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_B64 = "cHJvZmlsZS1ieXRlcw==" ,
2496+ )
2497+ self .assertEqual (result .returncode , 0 , result .stderr + result .stdout )
2498+ outputs = self ._outputs ()
2499+ profile_path = Path (outputs ["passkey_profile_path" ])
2500+ self .assertEqual (profile_path .read_bytes (), b"profile-bytes" )
2501+ self .assertEqual (profile_path .stat ().st_mode & 0o777 , 0o600 )
2502+ self .assertIn (
2503+ f"PROD_MACOS_BROWSEROS_PASSKEY_PROFILE_PATH={ profile_path } " ,
2504+ self .github_env .read_text (encoding = "utf-8" ).splitlines (),
2505+ )
2506+
2507+ cleanup = self ._run_helper (
2508+ "cleanup" ,
2509+ MACOS_SIGNING_STATE_PATH = outputs ["state_path" ],
2510+ )
2511+ self .assertEqual (cleanup .returncode , 0 , cleanup .stderr + cleanup .stdout )
2512+ self .assertFalse (profile_path .exists ())
2513+
24702514 def test_setup_uses_fingerprint_when_common_name_is_duplicated (self ):
24712515 result = self ._run_helper ("setup" , CODESIGN_REJECT_COMMON_NAME = "1" )
24722516 self .assertEqual (result .returncode , 0 , result .stderr + result .stdout )
0 commit comments