Run non-perf sensitive tests on Cirrus (#27971)
* Run non-perf sensisitive tests on Cirrus
diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index 45666f6..1a8284b 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -27,6 +27,7 @@
'tool_tests': _runToolTests,
'build_tests': _runBuildTests,
'coverage': _runCoverage,
+ 'integration_tests': _runIntegrationTests,
'add2app_test': _runAdd2AppTest,
};
@@ -615,3 +616,51 @@
exit(1);
}
}
+
+Future<void> _runIntegrationTests() async {
+ print('Platform env vars:');
+
+ await _runDevicelabTest('dartdocs');
+
+ if (Platform.isLinux) {
+ await _runDevicelabTest('flutter_create_offline_test_linux');
+ } else if (Platform.isWindows) {
+ await _runDevicelabTest('flutter_create_offline_test_windows');
+ } else if (Platform.isMacOS) {
+ await _runDevicelabTest('flutter_create_offline_test_mac');
+ await _runDevicelabTest('module_test_ios');
+ }
+ await _integrationTestsAndroidSdk();
+}
+
+Future<void> _runDevicelabTest(String testName, {Map<String, String> env}) async {
+ await runCommand(
+ dart,
+ <String>['bin/run.dart', '-t', testName],
+ workingDirectory: path.join(flutterRoot, 'dev', 'devicelab'),
+ environment: env,
+ );
+}
+
+Future<void> _integrationTestsAndroidSdk() async {
+ final String androidSdkRoot = (Platform.environment['ANDROID_HOME']?.isEmpty ?? true)
+ ? Platform.environment['ANDROID_SDK_ROOT']
+ : Platform.environment['ANDROID_HOME'];
+ if (androidSdkRoot == null || androidSdkRoot.isEmpty) {
+ print('No Android SDK detected, skipping Android Integration Tests');
+ return;
+ }
+
+ final Map<String, String> env = <String, String> {
+ 'ANDROID_HOME': androidSdkRoot,
+ 'ANDROID_SDK_ROOT': androidSdkRoot,
+ };
+
+ // TODO(dnfield): gradlew is crashing on the cirrus image and it's not clear why.
+ if (!Platform.isWindows) {
+ await _runDevicelabTest('gradle_plugin_test', env: env);
+ await _runDevicelabTest('module_test', env: env);
+ }
+ // note: this also covers plugin_test_win as long as Windows has an Android SDK available.
+ await _runDevicelabTest('plugin_test', env: env);
+}
\ No newline at end of file