flutter_flutter/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart
auto-submit[bot] 5bdd0beed2
Reverts "add run_gradle_lock_files_check.dart for new PR's that modify gradle files (#169245)" (#170770)
<!-- 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>
2025-06-17 23:59:28 +00:00

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());
}
});
}