mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
<!-- start_original_pr_link --> Reverts: flutter/flutter#169245 <!-- end_original_pr_link --> <!-- start_initiating_author --> Initiated by: matanlurey <!-- end_initiating_author --> <!-- start_revert_reason --> Reason for reverting: Increased the time of the test task `gradle_java8_compile_test` from about 5 minutes per run to over 30m, which hits the timeout causing tree failures. https://ci.chromium.org/ui/p/flutter/builders/luci.flutter.prod/Linux%20gradle_java8_compile_test <!-- end_revert_reason --> <!-- start_original_pr_author --> Original PR Author: ash2moon <!-- end_original_pr_author --> <!-- start_reviewers --> Reviewed By: {matanlurey} <!-- end_reviewers --> <!-- start_revert_body --> This change reverts the following previous change: This commit checks if there have been any changes to the gradle files and if gradle lock files need updating. If so, it will alert then PR owner to update their PR with the new gradle lock file.s Fixes https://github.com/flutter/flutter/issues/163228 Example test run: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8712427303492230593/+/u/run_gradle_java8_compile_test/stdout?format=raw This was added as an existing test under Linux gradle_java8_compile_test because benchmarking results showed on average about 3min 30s to run on my local M2 Mac. SInce it is not > 10min to run, placing it inside an existing test case was ideal. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md <!-- end_revert_body --> Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
98 lines
3.1 KiB
Dart
98 lines
3.1 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:flutter_devicelab/framework/apk_utils.dart';
|
|
import 'package:flutter_devicelab/framework/framework.dart';
|
|
import 'package:flutter_devicelab/framework/task_result.dart';
|
|
import 'package:flutter_devicelab/framework/utils.dart';
|
|
import 'package:path/path.dart' as path;
|
|
|
|
Future<void> main() async {
|
|
await task(() async {
|
|
try {
|
|
await runPluginProjectTest((FlutterPluginProject pluginProject) async {
|
|
section('check main plugin file exists');
|
|
final File pluginMainKotlinFile = File(
|
|
path.join(
|
|
pluginProject.rootPath,
|
|
'android',
|
|
'src',
|
|
'main',
|
|
'kotlin',
|
|
path.join('com', 'example', 'aaa', 'AaaPlugin.kt'),
|
|
),
|
|
);
|
|
|
|
if (!pluginMainKotlinFile.existsSync()) {
|
|
throw TaskResult.failure(
|
|
"Expected ${pluginMainKotlinFile.path} to exist, but it doesn't",
|
|
);
|
|
}
|
|
|
|
section('add java 8 feature');
|
|
pluginMainKotlinFile.writeAsStringSync(r'''
|
|
package com.example.aaa
|
|
|
|
import android.util.Log
|
|
import androidx.annotation.NonNull
|
|
|
|
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
|
import io.flutter.plugin.common.MethodCall
|
|
import io.flutter.plugin.common.MethodChannel
|
|
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
|
|
import io.flutter.plugin.common.MethodChannel.Result
|
|
|
|
import java.util.HashMap
|
|
|
|
/** AaaPlugin */
|
|
class AaaPlugin: FlutterPlugin, MethodCallHandler {
|
|
init {
|
|
val map: HashMap<String, String> = HashMap<String, String>()
|
|
// getOrDefault is a JAVA8 feature.
|
|
Log.d("AaaPlugin", map.getOrDefault("foo", "baz"))
|
|
}
|
|
/// The MethodChannel that will the communication between Flutter and native Android
|
|
///
|
|
/// This local reference serves to register the plugin with the Flutter Engine and unregister it
|
|
/// when the Flutter Engine is detached from the Activity
|
|
private lateinit var channel : MethodChannel
|
|
|
|
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
|
|
channel = MethodChannel(flutterPluginBinding.binaryMessenger, "aaa")
|
|
channel.setMethodCallHandler(this)
|
|
}
|
|
|
|
override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
|
|
if (call.method == "getPlatformVersion") {
|
|
result.success("Android ${android.os.Build.VERSION.RELEASE}")
|
|
} else {
|
|
result.notImplemented()
|
|
}
|
|
}
|
|
|
|
override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
|
|
channel.setMethodCallHandler(null)
|
|
}
|
|
}
|
|
''');
|
|
|
|
section('Compiles');
|
|
await inDirectory(pluginProject.exampleAndroidPath, () {
|
|
return flutter(
|
|
'build',
|
|
options: <String>['apk', '--debug', '--target-platform=android-arm'],
|
|
);
|
|
});
|
|
});
|
|
return TaskResult.success(null);
|
|
} on TaskResult catch (taskResult) {
|
|
return taskResult;
|
|
} catch (e) {
|
|
return TaskResult.failure(e.toString());
|
|
}
|
|
});
|
|
}
|