diff --git a/.ci.yaml b/.ci.yaml index 6543050029f9..1fc444bf2da9 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -111,6 +111,15 @@ platform_properties: device_type: none cpu: x86 xcode: 14e222b + mac_build_test: + properties: + dependencies: >- + [ + {"dependency": "apple_signing", "version": "version:2022_to_2023"} + ] + os: Mac-12 + device_type: none + xcode: 14e222b mac_android: properties: dependencies: >- @@ -3929,6 +3938,18 @@ targets: ["devicelab", "ios", "mac"] task_name: flutter_gallery__transition_perf_e2e_ios + - name: Mac_build_test flutter_gallery__transition_perf_e2e_ios + recipe: devicelab/devicelab_drone_build_test + bringup: true # New target: https://github.com/flutter/flutter/pull/111164 + presubmit: false + timeout: 60 + properties: + tags: > + ["devicelab", "ios", "mac"] + task_name: flutter_gallery__transition_perf_e2e_ios + drone_dimensions: > + ["device_os=iOS-16","os=Mac-12", "cpu=x86"] + - name: Mac_ios animated_blur_backdrop_filter_perf_ios__timeline_summary recipe: devicelab/devicelab_drone presubmit: false diff --git a/dev/devicelab/bin/tasks/flutter_gallery__transition_perf_e2e_ios.dart b/dev/devicelab/bin/tasks/flutter_gallery__transition_perf_e2e_ios.dart index 4792368b91f0..f16865ff4e01 100644 --- a/dev/devicelab/bin/tasks/flutter_gallery__transition_perf_e2e_ios.dart +++ b/dev/devicelab/bin/tasks/flutter_gallery__transition_perf_e2e_ios.dart @@ -6,7 +6,7 @@ import 'package:flutter_devicelab/framework/devices.dart'; import 'package:flutter_devicelab/framework/framework.dart'; import 'package:flutter_devicelab/tasks/gallery.dart'; -Future main() async { +Future main(List args) async { deviceOperatingSystem = DeviceOperatingSystem.ios; - await task(createGalleryTransitionE2ETest()); + await task(createGalleryTransitionE2EBuildTest(args)); } diff --git a/dev/devicelab/lib/tasks/gallery.dart b/dev/devicelab/lib/tasks/gallery.dart index 951649659ced..887d960d3f90 100644 --- a/dev/devicelab/lib/tasks/gallery.dart +++ b/dev/devicelab/lib/tasks/gallery.dart @@ -254,25 +254,44 @@ class GalleryTransitionBuildTest extends BuildTestTask { @override void copyArtifacts() { - if(applicationBinaryPath != null) { + if (applicationBinaryPath == null) { + return; + } + if (deviceOperatingSystem == DeviceOperatingSystem.android) { copy( file('${galleryDirectory.path}/build/app/outputs/flutter-apk/app-profile.apk'), Directory(applicationBinaryPath!), ); + } else if (deviceOperatingSystem == DeviceOperatingSystem.ios) { + recursiveCopy( + Directory('${galleryDirectory.path}/build/ios/iphoneos'), + Directory(applicationBinaryPath!), + ); } } @override List getBuildArgs(DeviceOperatingSystem deviceOperatingSystem) { - return [ - 'apk', - '--no-android-gradle-daemon', - '--profile', - '-t', - 'test_driver/$testFile.dart', - '--target-platform', - 'android-arm,android-arm64', - ]; + if (deviceOperatingSystem == DeviceOperatingSystem.android) { + return [ + 'apk', + '--no-android-gradle-daemon', + '--profile', + '-t', + 'test_driver/$testFile.dart', + '--target-platform', + 'android-arm,android-arm64', + ]; + } else if (deviceOperatingSystem == DeviceOperatingSystem.ios) { + return [ + 'ios', + '--codesign', + '--profile', + '-t', + 'test_driver/$testFile.dart', + ]; + } + throw Exception('$deviceOperatingSystem has no build configuration'); } @override @@ -286,7 +305,7 @@ class GalleryTransitionBuildTest extends BuildTestTask { if (needFullTimeline) '--trace-startup', '-t', 'test_driver/$testFile.dart', - '--use-application-binary=${getApplicationBinaryPath()}', + if (applicationBinaryPath != null) '--use-application-binary=${getApplicationBinaryPath()}', '--driver', 'test_driver/$testDriver.dart', '-d', @@ -362,11 +381,13 @@ class GalleryTransitionBuildTest extends BuildTestTask { @override String getApplicationBinaryPath() { - if (applicationBinaryPath != null) { - return '${applicationBinaryPath!}/app-profile.apk'; + if (deviceOperatingSystem == DeviceOperatingSystem.android) { + return '$applicationBinaryPath/app-profile.apk'; + } else if (deviceOperatingSystem == DeviceOperatingSystem.ios) { + return '$applicationBinaryPath/Flutter Gallery.app'; + } else { + return applicationBinaryPath!; } - - return 'build/app/outputs/flutter-apk/app-profile.apk'; } }