diff --git a/.github/workflows/open-shorebird-ci.yml b/.github/workflows/open-shorebird-ci.yml index a486796..6bd1705 100644 --- a/.github/workflows/open-shorebird-ci.yml +++ b/.github/workflows/open-shorebird-ci.yml @@ -999,10 +999,31 @@ jobs: cp "$out/arm64_v8a_release.jar" artifacts/android-engine/ fi - gen_snapshot="$(find "$out" -path '*/gen_snapshot_arm64' -type f -print -quit)" - analyze_snapshot="$(find "$out" -path '*/analyze_snapshot_arm64' -type f -print -quit)" - test -n "$gen_snapshot" - test -n "$analyze_snapshot" + gen_snapshot="" + for candidate in "$out/gen_snapshot_arm64" "$out/clang_x64/gen_snapshot" "$out/universal/gen_snapshot"; do + if [ -f "$candidate" ]; then + gen_snapshot="$candidate" + break + fi + done + if [ -z "$gen_snapshot" ]; then + echo "missing Android gen_snapshot tool under $out" >&2 + find "$out" -maxdepth 3 -type f -name 'gen_snapshot*' -print >&2 + exit 66 + fi + + analyze_snapshot="" + for candidate in "$out/analyze_snapshot_arm64" "$out/clang_x64/analyze_snapshot" "$out/universal/analyze_snapshot"; do + if [ -f "$candidate" ]; then + analyze_snapshot="$candidate" + break + fi + done + if [ -z "$analyze_snapshot" ]; then + echo "missing Android analyze_snapshot tool under $out" >&2 + find "$out" -maxdepth 3 -type f -name 'analyze_snapshot*' -print >&2 + exit 66 + fi cp "$gen_snapshot" artifacts/android-engine/gen_snapshot_arm64 cp "$analyze_snapshot" artifacts/android-engine/analyze_snapshot_arm64 diff --git a/scripts/verify_ci_workflow.rb b/scripts/verify_ci_workflow.rb index 9877c92..d440def 100755 --- a/scripts/verify_ci_workflow.rb +++ b/scripts/verify_ci_workflow.rb @@ -2073,6 +2073,8 @@ assert!( run_text_by_job.fetch('android-engine').include?('shorebird_enable_aot_patching=true') && run_text_by_job.fetch('android-engine').include?('shorebird_use_interpreter=false') && run_text_by_job.fetch('android-engine').include?('flutter_prebuilt_dart_sdk=false') && + run_text_by_job.fetch('android-engine').include?('$out/clang_x64/gen_snapshot') && + run_text_by_job.fetch('android-engine').include?('$out/clang_x64/analyze_snapshot') && run_text_by_job.fetch('android-engine').include?('mirror/shorebird/flutter_infra_release/flutter/${engine_revision}/android-arm64-release/artifacts.zip') && run_text_by_job.fetch('android-engine').include?('mirror/shorebird/flutter_infra_release/flutter/${engine_revision}/android-arm64-release/symbols.zip'), 'Android engine job must build and verify the native AOT patch runtime without DDM or interpreter mode'