Codesign libplist. Also, increase retries of codesign keychain setup. Bug: https://github.com/flutter/flutter/issues/168342 Change-Id: I57e5aa8d22292ffe08ee984d944c27237b1007c2 Reviewed-on: https://flutter-review.googlesource.com/c/recipes/+/65929 Reviewed-by: Matan Lurey <matanl@google.com> Commit-Queue: Victoria Ashworth <vashworth@google.com>
diff --git a/recipe_modules/signing/api.py b/recipe_modules/signing/api.py index 5b2e9b7..5803b04 100644 --- a/recipe_modules/signing/api.py +++ b/recipe_modules/signing/api.py
@@ -61,7 +61,7 @@ env = {} env_prefixes = {} self.m.retry.basic_wrap( - lambda timeout: self._start(env, env_prefixes), max_attempts=3 + lambda timeout: self._start(env, env_prefixes), max_attempts=5 ) try:
diff --git a/recipe_modules/signing/examples/code_sign.expected/failing_keychain.json b/recipe_modules/signing/examples/code_sign.expected/failing_keychain.json index f555846..1ad4b1f 100644 --- a/recipe_modules/signing/examples/code_sign.expected/failing_keychain.json +++ b/recipe_modules/signing/examples/code_sign.expected/failing_keychain.json
@@ -1197,9 +1197,775 @@ ] }, { + "cmd": [], + "name": "Setup codesign environment (4)" + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (4).ensure_installed", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/exported_p12.encrypted", + "[CLEANUP]/exported_p12.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (4).gsutil download", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/exported_p12.encrypted", + "-output", + "[CLEANUP]/FLUTTER_P12", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (4).cloudkms get key", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (4).ensure_installed (2)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/0325_p12password.encrypted", + "[CLEANUP]/0325_p12password.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (4).gsutil download (2)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/0325_p12password.encrypted", + "-output", + "[CLEANUP]/FLUTTER_P12_PASSWORD", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (4).cloudkms get key (2)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (4).ensure_installed (3)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/codesign_team_id.encrypted", + "[CLEANUP]/codesign_team_id.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (4).gsutil download (3)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/codesign_team_id.encrypted", + "-output", + "[CLEANUP]/CODESIGN_TEAM_ID", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (4).cloudkms get key (3)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (4).ensure_installed (4)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/codesign_app_specific_password.encrypted", + "[CLEANUP]/codesign_app_specific_password.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (4).gsutil download (4)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/codesign_app_specific_password.encrypted", + "-output", + "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (4).cloudkms get key (4)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (4).ensure_installed (5)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/codesign_app_store_id.encrypted", + "[CLEANUP]/codesign_app_store_id.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (4).gsutil download (5)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/codesign_app_store_id.encrypted", + "-output", + "[CLEANUP]/CODESIGN_APP_STORE_ID", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (4).cloudkms get key (5)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [], + "name": "Setup keychain (4)" + }, + { + "cmd": [ + "chmod", + "755", + "RECIPE_MODULE[flutter::signing]/resources/setup_keychain.dart" + ], + "infra_step": true, + "name": "Setup keychain (4).Set execute permission", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "RECIPE_MODULE[flutter::signing]/resources/setup_keychain.dart" + ], + "env": { + "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", + "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_1/codesign", + "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", + "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", + "FLUTTER_P12_PASSWORD": "[CLEANUP]/FLUTTER_P12_PASSWORD", + "P12_SUFFIX_FILEPATH": "[CLEANUP]/flutter.p12", + "SETUP_KEYCHAIN_LOGS_PATH": "[CLEANUP]/setup_keychain_logs.txt" + }, + "name": "run keychain setup script (4)", + "~followup_annotations": [ + "@@@STEP_FAILURE@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "-r", + "[CLEANUP]/setup_keychain_logs.txt", + "gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001340.txt" + ], + "env": { + "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", + "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_1/codesign", + "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", + "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", + "FLUTTER_P12_PASSWORD": "[CLEANUP]/FLUTTER_P12_PASSWORD", + "P12_SUFFIX_FILEPATH": "[CLEANUP]/flutter.p12", + "SETUP_KEYCHAIN_LOGS_PATH": "[CLEANUP]/setup_keychain_logs.txt" + }, + "infra_step": true, + "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001340.txt", + "~followup_annotations": [ + "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001340.txt@@@" + ] + }, + { + "cmd": [], + "name": "Setup codesign environment (5)" + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (5).ensure_installed", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/exported_p12.encrypted", + "[CLEANUP]/exported_p12.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (5).gsutil download", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/exported_p12.encrypted", + "-output", + "[CLEANUP]/FLUTTER_P12", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (5).cloudkms get key", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (5).ensure_installed (2)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/0325_p12password.encrypted", + "[CLEANUP]/0325_p12password.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (5).gsutil download (2)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/0325_p12password.encrypted", + "-output", + "[CLEANUP]/FLUTTER_P12_PASSWORD", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (5).cloudkms get key (2)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (5).ensure_installed (3)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/codesign_team_id.encrypted", + "[CLEANUP]/codesign_team_id.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (5).gsutil download (3)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/codesign_team_id.encrypted", + "-output", + "[CLEANUP]/CODESIGN_TEAM_ID", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (5).cloudkms get key (3)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (5).ensure_installed (4)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/codesign_app_specific_password.encrypted", + "[CLEANUP]/codesign_app_specific_password.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (5).gsutil download (4)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/codesign_app_specific_password.encrypted", + "-output", + "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (5).cloudkms get key (4)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "cipd", + "ensure", + "-root", + "[START_DIR]/cloudkms", + "-ensure-file", + "infra/tools/luci/cloudkms/${platform} latest", + "-max-threads", + "0", + "-json-output", + "/path/to/tmp/json" + ], + "infra_step": true, + "name": "Setup codesign environment (5).ensure_installed (5)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@", + "@@@STEP_LOG_LINE@json.output@{@@@", + "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", + "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/tools/luci/cloudkms/resolved-platform\"@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@ ]@@@", + "@@@STEP_LOG_LINE@json.output@ }@@@", + "@@@STEP_LOG_LINE@json.output@}@@@", + "@@@STEP_LOG_END@json.output@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_configs/codesign_app_store_id.encrypted", + "[CLEANUP]/codesign_app_store_id.encrypted" + ], + "infra_step": true, + "name": "Setup codesign environment (5).gsutil download (5)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[START_DIR]/cloudkms/cloudkms", + "decrypt", + "-input", + "[CLEANUP]/codesign_app_store_id.encrypted", + "-output", + "[CLEANUP]/CODESIGN_APP_STORE_ID", + "projects/flutter-infra-staging/locations/global/keyRings/luci/cryptoKeys/flutter-infra" + ], + "name": "Setup codesign environment (5).cloudkms get key (5)", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [], + "name": "Setup keychain (5)" + }, + { + "cmd": [ + "chmod", + "755", + "RECIPE_MODULE[flutter::signing]/resources/setup_keychain.dart" + ], + "infra_step": true, + "name": "Setup keychain (5).Set execute permission", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "RECIPE_MODULE[flutter::signing]/resources/setup_keychain.dart" + ], + "env": { + "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", + "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_1/codesign", + "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", + "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", + "FLUTTER_P12_PASSWORD": "[CLEANUP]/FLUTTER_P12_PASSWORD", + "P12_SUFFIX_FILEPATH": "[CLEANUP]/flutter.p12", + "SETUP_KEYCHAIN_LOGS_PATH": "[CLEANUP]/setup_keychain_logs.txt" + }, + "name": "run keychain setup script (5)", + "~followup_annotations": [ + "@@@STEP_FAILURE@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "-r", + "[CLEANUP]/setup_keychain_logs.txt", + "gs://flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001343.txt" + ], + "env": { + "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", + "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_1/codesign", + "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", + "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", + "FLUTTER_P12_PASSWORD": "[CLEANUP]/FLUTTER_P12_PASSWORD", + "P12_SUFFIX_FILEPATH": "[CLEANUP]/flutter.p12", + "SETUP_KEYCHAIN_LOGS_PATH": "[CLEANUP]/setup_keychain_logs.txt" + }, + "infra_step": true, + "name": "gsutil upload debug logs to 0/setup_keychain_logs_00000000-0000-0000-0000-000000001343.txt", + "~followup_annotations": [ + "@@@STEP_LINK@gsutil.upload@https://console.cloud.google.com/storage/browser/flutter_tmp_logs/0/setup_keychain_logs_00000000-0000-0000-0000-000000001343.txt@@@" + ] + }, + { "failure": { "failure": {}, - "humanReason": "Step('run keychain setup script (3)') (retcode: 1)" + "humanReason": "Step('run keychain setup script (5)') (retcode: 1)" }, "name": "$result" }
diff --git a/recipe_modules/signing/examples/code_sign.py b/recipe_modules/signing/examples/code_sign.py index dee1dab..4106f38 100644 --- a/recipe_modules/signing/examples/code_sign.py +++ b/recipe_modules/signing/examples/code_sign.py
@@ -39,5 +39,7 @@ api.step_data('run keychain setup script', retcode=1), api.step_data('run keychain setup script (2)', retcode=1), api.step_data('run keychain setup script (3)', retcode=1), + api.step_data('run keychain setup script (4)', retcode=1), + api.step_data('run keychain setup script (5)', retcode=1), status='FAILURE' )
diff --git a/recipe_modules/signing/resources/setup_keychain.dart b/recipe_modules/signing/resources/setup_keychain.dart index 023d94f..b210e5e 100755 --- a/recipe_modules/signing/resources/setup_keychain.dart +++ b/recipe_modules/signing/resources/setup_keychain.dart
@@ -202,7 +202,7 @@ Future<void> _verifyCertWithRetries() async { // Verify the certificate is valid. If it isn't, check again after n seconds. - int sleepSeconds = 2; + int sleepSeconds = 3; for (int attempt = 0; attempt < totalRetryAttempts; attempt++) { final String results = _verifyCert(allowNonzero: true); if (!results.contains('Certificate errors') && !results.contains('Trust evaluation errors')) {
diff --git a/recipes/ios_usb_dependencies/ios_usb_dependencies_release.expected/with_codesigning.json b/recipes/ios_usb_dependencies/ios_usb_dependencies_release.expected/with_codesigning.json index 09a7174..0891c06 100644 --- a/recipes/ios_usb_dependencies/ios_usb_dependencies_release.expected/with_codesigning.json +++ b/recipes/ios_usb_dependencies/ios_usb_dependencies_release.expected/with_codesigning.json
@@ -628,7 +628,7 @@ "RECIPE_REPO[depot_tools]/gsutil.py", "----", "cp", - "gs://flutter_infra_release/ios-usb-dependencies/unsigned/libusbmuxd/latest_unsigned.version", + "gs://flutter_infra_release/ios-usb-dependencies/unsigned/libplist/latest_unsigned.version", "[CLEANUP]/tmp_tmp_3/latest_unsigned.version" ], "env": { @@ -662,6 +662,189 @@ "hostname": "rdbhost" } }, + "name": "gsutil download latest_unsigned.version for libplist" + }, + { + "cmd": [ + "vpython3", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "copy", + "[CLEANUP]/tmp_tmp_3/latest_unsigned.version", + "/path/to/tmp/" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "GIT_BRANCH": "", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "", + "OS": "darwin", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "infra_step": true, + "luci_context": { + "realm": { + "name": "dart-internal:flutter" + }, + "resultdb": { + "current_invocation": { + "name": "invocations/build:8945511751514863184", + "update_token": "token" + }, + "hostname": "rdbhost" + } + }, + "name": "Read latest_unsigned.version for libplist", + "~followup_annotations": [ + "@@@STEP_LOG_LINE@latest_unsigned.version@ 123456 @@@", + "@@@STEP_LOG_LINE@latest_unsigned.version@@@@", + "@@@STEP_LOG_END@latest_unsigned.version@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "ls", + "gs://flutter_infra_release/ios-usb-dependencies/libplist/123456/libplist.zip" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "GIT_BRANCH": "", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "", + "OS": "darwin", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "infra_step": true, + "luci_context": { + "realm": { + "name": "dart-internal:flutter" + }, + "resultdb": { + "current_invocation": { + "name": "invocations/build:8945511751514863184", + "update_token": "token" + }, + "hostname": "rdbhost" + } + }, + "name": "gsutil list (3)" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_infra_release/ios-usb-dependencies/unsigned/libplist/123456/libplist.zip", + "[CLEANUP]/tmp_tmp_3/libplist.zip" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "GIT_BRANCH": "", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "", + "OS": "darwin", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "infra_step": true, + "luci_context": { + "realm": { + "name": "dart-internal:flutter" + }, + "resultdb": { + "current_invocation": { + "name": "invocations/build:8945511751514863184", + "update_token": "token" + }, + "hostname": "rdbhost" + } + }, + "name": "gsutil download [CLEANUP]/tmp_tmp_3/libplist.zip" + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "gs://flutter_infra_release/ios-usb-dependencies/unsigned/libusbmuxd/latest_unsigned.version", + "[CLEANUP]/tmp_tmp_4/latest_unsigned.version" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "GIT_BRANCH": "", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "", + "OS": "darwin", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "infra_step": true, + "luci_context": { + "realm": { + "name": "dart-internal:flutter" + }, + "resultdb": { + "current_invocation": { + "name": "invocations/build:8945511751514863184", + "update_token": "token" + }, + "hostname": "rdbhost" + } + }, "name": "gsutil download latest_unsigned.version for libusbmuxd" }, { @@ -672,7 +855,7 @@ "--json-output", "/path/to/tmp/json", "copy", - "[CLEANUP]/tmp_tmp_3/latest_unsigned.version", + "[CLEANUP]/tmp_tmp_4/latest_unsigned.version", "/path/to/tmp/" ], "env": { @@ -755,7 +938,7 @@ "hostname": "rdbhost" } }, - "name": "gsutil list (3)" + "name": "gsutil list (4)" }, { "cmd": [ @@ -767,7 +950,7 @@ "----", "cp", "gs://flutter_infra_release/ios-usb-dependencies/unsigned/libusbmuxd/123456/libusbmuxd.zip", - "[CLEANUP]/tmp_tmp_3/libusbmuxd.zip" + "[CLEANUP]/tmp_tmp_4/libusbmuxd.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", @@ -800,7 +983,7 @@ "hostname": "rdbhost" } }, - "name": "gsutil download [CLEANUP]/tmp_tmp_3/libusbmuxd.zip" + "name": "gsutil download [CLEANUP]/tmp_tmp_4/libusbmuxd.zip" }, { "cmd": [ @@ -812,7 +995,7 @@ "----", "cp", "gs://flutter_infra_release/ios-usb-dependencies/unsigned/openssl/latest_unsigned.version", - "[CLEANUP]/tmp_tmp_4/latest_unsigned.version" + "[CLEANUP]/tmp_tmp_5/latest_unsigned.version" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", @@ -855,7 +1038,7 @@ "--json-output", "/path/to/tmp/json", "copy", - "[CLEANUP]/tmp_tmp_4/latest_unsigned.version", + "[CLEANUP]/tmp_tmp_5/latest_unsigned.version", "/path/to/tmp/" ], "env": { @@ -938,7 +1121,7 @@ "hostname": "rdbhost" } }, - "name": "gsutil list (4)" + "name": "gsutil list (5)" }, { "cmd": [ @@ -950,7 +1133,7 @@ "----", "cp", "gs://flutter_infra_release/ios-usb-dependencies/unsigned/openssl/123456/openssl.zip", - "[CLEANUP]/tmp_tmp_4/openssl.zip" + "[CLEANUP]/tmp_tmp_5/openssl.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", @@ -983,7 +1166,7 @@ "hostname": "rdbhost" } }, - "name": "gsutil download [CLEANUP]/tmp_tmp_4/openssl.zip" + "name": "gsutil download [CLEANUP]/tmp_tmp_5/openssl.zip" }, { "cmd": [ @@ -995,7 +1178,7 @@ "----", "cp", "gs://flutter_infra_release/ios-usb-dependencies/unsigned/libimobiledevice/latest_unsigned.version", - "[CLEANUP]/tmp_tmp_5/latest_unsigned.version" + "[CLEANUP]/tmp_tmp_6/latest_unsigned.version" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", @@ -1038,7 +1221,7 @@ "--json-output", "/path/to/tmp/json", "copy", - "[CLEANUP]/tmp_tmp_5/latest_unsigned.version", + "[CLEANUP]/tmp_tmp_6/latest_unsigned.version", "/path/to/tmp/" ], "env": { @@ -1121,7 +1304,7 @@ "hostname": "rdbhost" } }, - "name": "gsutil list (5)" + "name": "gsutil list (6)" }, { "cmd": [ @@ -1133,7 +1316,7 @@ "----", "cp", "gs://flutter_infra_release/ios-usb-dependencies/unsigned/libimobiledevice/123456/libimobiledevice.zip", - "[CLEANUP]/tmp_tmp_5/libimobiledevice.zip" + "[CLEANUP]/tmp_tmp_6/libimobiledevice.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", @@ -1166,7 +1349,7 @@ "hostname": "rdbhost" } }, - "name": "gsutil download [CLEANUP]/tmp_tmp_5/libimobiledevice.zip" + "name": "gsutil download [CLEANUP]/tmp_tmp_6/libimobiledevice.zip" }, { "cmd": [], @@ -1184,7 +1367,7 @@ "cipd", "ensure", "-root", - "[CLEANUP]/tmp_tmp_6", + "[CLEANUP]/tmp_tmp_7", "-ensure-file", "flutter/codesign/${platform} latest", "-max-threads", @@ -2062,7 +2245,7 @@ "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", - "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_6/codesign", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_7/codesign", "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", @@ -2115,7 +2298,7 @@ "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", - "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_6/codesign", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_7/codesign", "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", @@ -2248,7 +2431,7 @@ }, { "cmd": [ - "[CLEANUP]/tmp_tmp_6/codesign", + "[CLEANUP]/tmp_tmp_7/codesign", "--codesign-cert-name", "Developer ID Application: FLUTTER.IO LLC (S8QB4VV633)", "--no-dryrun", @@ -2267,7 +2450,7 @@ "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", - "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_6/codesign", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_7/codesign", "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", @@ -2314,8 +2497,8 @@ "--json-output", "/path/to/tmp/json", "move", - "[CLEANUP]/tmp_tmp_3/libusbmuxd.zip", - "[CLEANUP]/tmp_tmp_3/unsigned_libusbmuxd.zip" + "[CLEANUP]/tmp_tmp_3/libplist.zip", + "[CLEANUP]/tmp_tmp_3/unsigned_libplist.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", @@ -2348,11 +2531,11 @@ "hostname": "rdbhost" } }, - "name": "Move [CLEANUP]/tmp_tmp_3/libusbmuxd.zip" + "name": "Move [CLEANUP]/tmp_tmp_3/libplist.zip" }, { "cmd": [], - "name": "Codesign [CLEANUP]/tmp_tmp_3/unsigned_libusbmuxd.zip" + "name": "Codesign [CLEANUP]/tmp_tmp_3/unsigned_libplist.zip" }, { "cmd": [ @@ -2392,14 +2575,14 @@ "hostname": "rdbhost" } }, - "name": "Codesign [CLEANUP]/tmp_tmp_3/unsigned_libusbmuxd.zip.unlock build keychain", + "name": "Codesign [CLEANUP]/tmp_tmp_3/unsigned_libplist.zip.unlock build keychain", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] }, { "cmd": [ - "[CLEANUP]/tmp_tmp_6/codesign", + "[CLEANUP]/tmp_tmp_7/codesign", "--codesign-cert-name", "Developer ID Application: FLUTTER.IO LLC (S8QB4VV633)", "--no-dryrun", @@ -2410,15 +2593,15 @@ "--codesign-team-id-file-path", "[CLEANUP]/CODESIGN_TEAM_ID", "--input-zip-file-path", - "[CLEANUP]/tmp_tmp_3/unsigned_libusbmuxd.zip", + "[CLEANUP]/tmp_tmp_3/unsigned_libplist.zip", "--output-zip-file-path", - "[CLEANUP]/tmp_tmp_3/libusbmuxd.zip" + "[CLEANUP]/tmp_tmp_3/libplist.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", - "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_6/codesign", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_7/codesign", "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", @@ -2452,7 +2635,7 @@ "hostname": "rdbhost" } }, - "name": "Codesign [CLEANUP]/tmp_tmp_3/unsigned_libusbmuxd.zip.codesign Apple engine binaries", + "name": "Codesign [CLEANUP]/tmp_tmp_3/unsigned_libplist.zip.codesign Apple engine binaries", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -2465,8 +2648,8 @@ "--json-output", "/path/to/tmp/json", "move", - "[CLEANUP]/tmp_tmp_4/openssl.zip", - "[CLEANUP]/tmp_tmp_4/unsigned_openssl.zip" + "[CLEANUP]/tmp_tmp_4/libusbmuxd.zip", + "[CLEANUP]/tmp_tmp_4/unsigned_libusbmuxd.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", @@ -2499,11 +2682,11 @@ "hostname": "rdbhost" } }, - "name": "Move [CLEANUP]/tmp_tmp_4/openssl.zip" + "name": "Move [CLEANUP]/tmp_tmp_4/libusbmuxd.zip" }, { "cmd": [], - "name": "Codesign [CLEANUP]/tmp_tmp_4/unsigned_openssl.zip" + "name": "Codesign [CLEANUP]/tmp_tmp_4/unsigned_libusbmuxd.zip" }, { "cmd": [ @@ -2543,14 +2726,14 @@ "hostname": "rdbhost" } }, - "name": "Codesign [CLEANUP]/tmp_tmp_4/unsigned_openssl.zip.unlock build keychain", + "name": "Codesign [CLEANUP]/tmp_tmp_4/unsigned_libusbmuxd.zip.unlock build keychain", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] }, { "cmd": [ - "[CLEANUP]/tmp_tmp_6/codesign", + "[CLEANUP]/tmp_tmp_7/codesign", "--codesign-cert-name", "Developer ID Application: FLUTTER.IO LLC (S8QB4VV633)", "--no-dryrun", @@ -2561,15 +2744,15 @@ "--codesign-team-id-file-path", "[CLEANUP]/CODESIGN_TEAM_ID", "--input-zip-file-path", - "[CLEANUP]/tmp_tmp_4/unsigned_openssl.zip", + "[CLEANUP]/tmp_tmp_4/unsigned_libusbmuxd.zip", "--output-zip-file-path", - "[CLEANUP]/tmp_tmp_4/openssl.zip" + "[CLEANUP]/tmp_tmp_4/libusbmuxd.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", - "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_6/codesign", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_7/codesign", "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", @@ -2603,7 +2786,7 @@ "hostname": "rdbhost" } }, - "name": "Codesign [CLEANUP]/tmp_tmp_4/unsigned_openssl.zip.codesign Apple engine binaries", + "name": "Codesign [CLEANUP]/tmp_tmp_4/unsigned_libusbmuxd.zip.codesign Apple engine binaries", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -2616,8 +2799,8 @@ "--json-output", "/path/to/tmp/json", "move", - "[CLEANUP]/tmp_tmp_5/libimobiledevice.zip", - "[CLEANUP]/tmp_tmp_5/unsigned_libimobiledevice.zip" + "[CLEANUP]/tmp_tmp_5/openssl.zip", + "[CLEANUP]/tmp_tmp_5/unsigned_openssl.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", @@ -2650,11 +2833,11 @@ "hostname": "rdbhost" } }, - "name": "Move [CLEANUP]/tmp_tmp_5/libimobiledevice.zip" + "name": "Move [CLEANUP]/tmp_tmp_5/openssl.zip" }, { "cmd": [], - "name": "Codesign [CLEANUP]/tmp_tmp_5/unsigned_libimobiledevice.zip" + "name": "Codesign [CLEANUP]/tmp_tmp_5/unsigned_openssl.zip" }, { "cmd": [ @@ -2694,14 +2877,14 @@ "hostname": "rdbhost" } }, - "name": "Codesign [CLEANUP]/tmp_tmp_5/unsigned_libimobiledevice.zip.unlock build keychain", + "name": "Codesign [CLEANUP]/tmp_tmp_5/unsigned_openssl.zip.unlock build keychain", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] }, { "cmd": [ - "[CLEANUP]/tmp_tmp_6/codesign", + "[CLEANUP]/tmp_tmp_7/codesign", "--codesign-cert-name", "Developer ID Application: FLUTTER.IO LLC (S8QB4VV633)", "--no-dryrun", @@ -2712,15 +2895,15 @@ "--codesign-team-id-file-path", "[CLEANUP]/CODESIGN_TEAM_ID", "--input-zip-file-path", - "[CLEANUP]/tmp_tmp_5/unsigned_libimobiledevice.zip", + "[CLEANUP]/tmp_tmp_5/unsigned_openssl.zip", "--output-zip-file-path", - "[CLEANUP]/tmp_tmp_5/libimobiledevice.zip" + "[CLEANUP]/tmp_tmp_5/openssl.zip" ], "env": { "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", - "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_6/codesign", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_7/codesign", "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", @@ -2754,7 +2937,158 @@ "hostname": "rdbhost" } }, - "name": "Codesign [CLEANUP]/tmp_tmp_5/unsigned_libimobiledevice.zip.codesign Apple engine binaries", + "name": "Codesign [CLEANUP]/tmp_tmp_5/unsigned_openssl.zip.codesign Apple engine binaries", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "vpython3", + "-u", + "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py", + "--json-output", + "/path/to/tmp/json", + "move", + "[CLEANUP]/tmp_tmp_6/libimobiledevice.zip", + "[CLEANUP]/tmp_tmp_6/unsigned_libimobiledevice.zip" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "GIT_BRANCH": "", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "", + "OS": "darwin", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "infra_step": true, + "luci_context": { + "realm": { + "name": "dart-internal:flutter" + }, + "resultdb": { + "current_invocation": { + "name": "invocations/build:8945511751514863184", + "update_token": "token" + }, + "hostname": "rdbhost" + } + }, + "name": "Move [CLEANUP]/tmp_tmp_6/libimobiledevice.zip" + }, + { + "cmd": [], + "name": "Codesign [CLEANUP]/tmp_tmp_6/unsigned_libimobiledevice.zip" + }, + { + "cmd": [ + "security", + "unlock-keychain", + "-p", + "", + "build.keychain" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "GIT_BRANCH": "", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "", + "OS": "darwin", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "luci_context": { + "realm": { + "name": "dart-internal:flutter" + }, + "resultdb": { + "current_invocation": { + "name": "invocations/build:8945511751514863184", + "update_token": "token" + }, + "hostname": "rdbhost" + } + }, + "name": "Codesign [CLEANUP]/tmp_tmp_6/unsigned_libimobiledevice.zip.unlock build keychain", + "~followup_annotations": [ + "@@@STEP_NEST_LEVEL@1@@@" + ] + }, + { + "cmd": [ + "[CLEANUP]/tmp_tmp_7/codesign", + "--codesign-cert-name", + "Developer ID Application: FLUTTER.IO LLC (S8QB4VV633)", + "--no-dryrun", + "--app-specific-password-file-path", + "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", + "--codesign-appstore-id-file-path", + "[CLEANUP]/CODESIGN_APP_STORE_ID", + "--codesign-team-id-file-path", + "[CLEANUP]/CODESIGN_TEAM_ID", + "--input-zip-file-path", + "[CLEANUP]/tmp_tmp_6/unsigned_libimobiledevice.zip", + "--output-zip-file-path", + "[CLEANUP]/tmp_tmp_6/libimobiledevice.zip" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "CODESIGN_APP_SPECIFIC_PASSWORD": "[CLEANUP]/CODESIGN_APP_SPECIFIC_PASSWORD", + "CODESIGN_APP_STORE_ID": "[CLEANUP]/CODESIGN_APP_STORE_ID", + "CODESIGN_PATH": "[CLEANUP]/tmp_tmp_7/codesign", + "CODESIGN_TEAM_ID": "[CLEANUP]/CODESIGN_TEAM_ID", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "FLUTTER_P12": "[CLEANUP]/FLUTTER_P12", + "FLUTTER_P12_PASSWORD": "[CLEANUP]/FLUTTER_P12_PASSWORD", + "GIT_BRANCH": "", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "", + "OS": "darwin", + "P12_SUFFIX_FILEPATH": "[CLEANUP]/flutter.p12", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter", + "SETUP_KEYCHAIN_LOGS_PATH": "[CLEANUP]/setup_keychain_logs.txt" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "luci_context": { + "realm": { + "name": "dart-internal:flutter" + }, + "resultdb": { + "current_invocation": { + "name": "invocations/build:8945511751514863184", + "update_token": "token" + }, + "hostname": "rdbhost" + } + }, + "name": "Codesign [CLEANUP]/tmp_tmp_6/unsigned_libimobiledevice.zip.codesign Apple engine binaries", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@1@@@" ] @@ -2903,7 +3237,55 @@ "RECIPE_REPO[depot_tools]/gsutil.py", "----", "cp", - "[CLEANUP]/tmp_tmp_3/libusbmuxd.zip", + "[CLEANUP]/tmp_tmp_3/libplist.zip", + "gs://flutter_infra_release/ios-usb-dependencies/libplist/123456/libplist.zip" + ], + "env": { + "ARTIFACT_HUB_REPOSITORY": "artifactregistry://us-maven.pkg.dev/artifact-foundry-prod/maven-3p", + "DEPOT_TOOLS": "RECIPE_REPO[depot_tools]", + "GIT_BRANCH": "", + "LUCI_BRANCH": "", + "LUCI_CI": "True", + "LUCI_PR": "", + "OS": "darwin", + "PUB_CACHE": "[START_DIR]/.pub-cache", + "REVISION": "12345abcde12345abcde12345abcde12345abcde", + "SDK_CHECKOUT_PATH": "[START_DIR]/flutter" + }, + "env_prefixes": { + "PATH": [ + "[START_DIR]/flutter/bin", + "[START_DIR]/flutter/bin/cache/dart-sdk/bin" + ] + }, + "infra_step": true, + "luci_context": { + "realm": { + "name": "dart-internal:flutter" + }, + "resultdb": { + "current_invocation": { + "name": "invocations/build:8945511751514863184", + "update_token": "token" + }, + "hostname": "rdbhost" + } + }, + "name": "gsutil upload of libplist.zip", + "~followup_annotations": [ + "@@@STEP_LINK@libplist.zip@https://storage.cloud.google.com/flutter_infra_release/ios-usb-dependencies/libplist/123456/libplist.zip@@@" + ] + }, + { + "cmd": [ + "python3", + "-u", + "RECIPE_MODULE[depot_tools::gsutil]/resources/gsutil_smart_retry.py", + "--", + "RECIPE_REPO[depot_tools]/gsutil.py", + "----", + "cp", + "[CLEANUP]/tmp_tmp_4/libusbmuxd.zip", "gs://flutter_infra_release/ios-usb-dependencies/libusbmuxd/123456/libusbmuxd.zip" ], "env": { @@ -2951,7 +3333,7 @@ "RECIPE_REPO[depot_tools]/gsutil.py", "----", "cp", - "[CLEANUP]/tmp_tmp_4/openssl.zip", + "[CLEANUP]/tmp_tmp_5/openssl.zip", "gs://flutter_infra_release/ios-usb-dependencies/openssl/123456/openssl.zip" ], "env": { @@ -2999,7 +3381,7 @@ "RECIPE_REPO[depot_tools]/gsutil.py", "----", "cp", - "[CLEANUP]/tmp_tmp_5/libimobiledevice.zip", + "[CLEANUP]/tmp_tmp_6/libimobiledevice.zip", "gs://flutter_infra_release/ios-usb-dependencies/libimobiledevice/123456/libimobiledevice.zip" ], "env": {
diff --git a/recipes/ios_usb_dependencies/ios_usb_dependencies_release.py b/recipes/ios_usb_dependencies/ios_usb_dependencies_release.py index afc0911..1fbd480 100644 --- a/recipes/ios_usb_dependencies/ios_usb_dependencies_release.py +++ b/recipes/ios_usb_dependencies/ios_usb_dependencies_release.py
@@ -150,6 +150,7 @@ libimobiledeviceglue_package_info = _downloadPackage( api, 'libimobiledeviceglue' ) + libplist_package_info = _downloadPackage(api, 'libplist') libusbmuxd_package_info = _downloadPackage(api, 'libusbmuxd') openssl_package_info = _downloadPackage(api, 'openssl') libimobiledevice_package_info = _downloadPackage(api, 'libimobiledevice') @@ -157,6 +158,7 @@ api, [ ios_deploy_package_info, libimobiledeviceglue_package_info, + libplist_package_info, libusbmuxd_package_info, openssl_package_info, libimobiledevice_package_info, @@ -189,11 +191,13 @@ api.path.cleanup_dir / 'tmp_tmp_2/latest_unsigned.version', api.path.cleanup_dir / 'tmp_tmp_2/libimobiledeviceglue.zip', api.path.cleanup_dir / 'tmp_tmp_3/latest_unsigned.version', - api.path.cleanup_dir / 'tmp_tmp_3/libusbmuxd.zip', + api.path.cleanup_dir / 'tmp_tmp_3/libplist.zip', api.path.cleanup_dir / 'tmp_tmp_4/latest_unsigned.version', - api.path.cleanup_dir / 'tmp_tmp_4/openssl.zip', + api.path.cleanup_dir / 'tmp_tmp_4/libusbmuxd.zip', api.path.cleanup_dir / 'tmp_tmp_5/latest_unsigned.version', - api.path.cleanup_dir / 'tmp_tmp_5/libimobiledevice.zip', + api.path.cleanup_dir / 'tmp_tmp_5/openssl.zip', + api.path.cleanup_dir / 'tmp_tmp_6/latest_unsigned.version', + api.path.cleanup_dir / 'tmp_tmp_6/libimobiledevice.zip', *api.repo_util.flutter_environment_path( api.path.start_dir / 'flutter' ) @@ -207,6 +211,10 @@ api.file.read_text(text_content=(' 123456 \n\n')) ), api.step_data( + 'Read latest_unsigned.version for libplist', + api.file.read_text(text_content=(' 123456 \n\n')) + ), + api.step_data( 'Read latest_unsigned.version for libusbmuxd', api.file.read_text(text_content=(' 123456 \n\n')) ),