Skip to content

Commit fee34fd

Browse files
author
Gray Mackall
committed
add compile sdk overriding to the buildflutterapk tests
1 parent b502ace commit fee34fd

File tree

4 files changed

+36
-3
lines changed

4 files changed

+36
-3
lines changed

dev/devicelab/bin/tasks/android_java11_dependency_smoke_tests.dart

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,22 @@ List<VersionTuple> versionTuples = <VersionTuple>[
2525

2626
// This test requires a Java version less than 17 due to the intentionally low
2727
// version of Gradle. We choose 11 because this was the primary version used in
28-
// CI before 17, and hence it is also hosted on CIPD.
28+
// CI before 17, and hence it is also hosted on CIPD. It also overrides to
29+
// compileSdkVersion 34 because compileSdk 35 requires AGP 8.0+.
2930
// https://docs.gradle.org/current/userguide/compatibility.html
3031
Future<void> main() async {
3132
/// The [FileSystem] for the integration test environment.
3233
const LocalFileSystem fileSystem = LocalFileSystem();
3334

34-
final Directory tempDir = fileSystem.systemTempDirectory.createTempSync('flutter_android_dependency_version_tests');
35+
final Directory tempDir = fileSystem
36+
.systemTempDirectory
37+
.createTempSync('flutter_android_dependency_version_tests');
3538
await task(() {
36-
return buildFlutterApkWithSpecifiedDependencyVersions(versionTuples: versionTuples, tempDir: tempDir, localFileSystem: fileSystem);
39+
return buildFlutterApkWithSpecifiedDependencyVersions(
40+
versionTuples: versionTuples,
41+
compileSdkOverride: '34',
42+
tempDir: tempDir,
43+
localFileSystem: fileSystem
44+
);
3745
});
3846
}

dev/devicelab/lib/framework/dependency_smoke_test_task_definition.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ distributionUrl=https\://services.gradle.org/distributions/gradle-GRADLE_REPLACE
5858
''';
5959

6060
const String gradleReplacementString = 'GRADLE_REPLACE_ME';
61+
const String flutterCompileSdkString = 'flutter.compileSdkVersion';
6162

6263
/// A simple class containing a Kotlin, Gradle, and AGP version.
6364
class VersionTuple {
@@ -87,6 +88,7 @@ class VersionTuple {
8788
/// fails, returns a successful result otherwise. Cleans up in either case.
8889
Future<TaskResult> buildFlutterApkWithSpecifiedDependencyVersions({
8990
required List<VersionTuple> versionTuples,
91+
String? compileSdkOverride,
9092
required Directory tempDir,
9193
required LocalFileSystem localFileSystem,}) async {
9294
for (final VersionTuple versions in versionTuples) {
@@ -105,6 +107,14 @@ Future<TaskResult> buildFlutterApkWithSpecifiedDependencyVersions({
105107

106108
final String appPath = '${innerTempDir.absolute.path}/dependency_checker_app';
107109

110+
if (compileSdkOverride != null) {
111+
final File appGradleBuild = localFileSystem.file(localFileSystem.path.join(
112+
appPath, 'android', 'app', 'build.gradle'));
113+
final String appBuildContent = appGradleBuild.readAsStringSync()
114+
.replaceFirst(flutterCompileSdkString, compileSdkOverride);
115+
appGradleBuild.writeAsStringSync(appBuildContent);
116+
}
117+
108118
// Modify gradle version to passed in version.
109119
final File gradleWrapperProperties = localFileSystem.file(localFileSystem.path.join(
110120
appPath, 'android', 'gradle', 'wrapper', 'gradle-wrapper.properties'));

packages/flutter_tools/test/android_java11_integration.shard/android_dependency_version_checking_test.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import '../src/context.dart';
1414

1515

1616
// This test requires Java 11 due to the intentionally low version of Gradle.
17+
// It also overrides the template compile sdk version to 34, because using 35
18+
// requires AGP 8.0+.
1719
void main() {
1820
late Directory tempDir;
1921

@@ -31,6 +33,7 @@ void main() {
3133
final VersionTuple versionTuple = VersionTuple(agpVersion: '7.0.0', gradleVersion: '7.5', kotlinVersion: '1.7.10');
3234
final ProcessResult result = await buildFlutterApkWithSpecifiedDependencyVersions(
3335
versions: versionTuple,
36+
compileSdkOverride: '34',
3437
tempDir: tempDir
3538
);
3639
expect(result, const ProcessResultMatcher());
@@ -44,6 +47,7 @@ void main() {
4447
final VersionTuple versionTuple = VersionTuple(agpVersion: '7.0.0', gradleVersion: '7.0.2', kotlinVersion: '1.7.10');
4548
final ProcessResult result = await buildFlutterApkWithSpecifiedDependencyVersions(
4649
versions: versionTuple,
50+
compileSdkOverride: '34',
4751
tempDir: tempDir
4852
);
4953
expect(result, const ProcessResultMatcher());
@@ -56,6 +60,7 @@ void main() {
5660
final VersionTuple versionTuple = VersionTuple(agpVersion: '7.4.0', gradleVersion: '7.5', kotlinVersion: '1.7.0');
5761
final ProcessResult result = await buildFlutterApkWithSpecifiedDependencyVersions(
5862
versions: versionTuple,
63+
compileSdkOverride: '34',
5964
tempDir: tempDir
6065
);
6166

packages/flutter_tools/test/src/android_common.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ distributionUrl=https\://services.gradle.org/distributions/gradle-GRADLE_REPLACE
117117
''';
118118

119119
const String gradleReplacementString = 'GRADLE_REPLACE_ME';
120+
const String flutterCompileSdkString = 'flutter.compileSdkVersion';
120121

121122
class VersionTuple {
122123

@@ -141,6 +142,7 @@ class VersionTuple {
141142
/// ProcessResult.
142143
Future<ProcessResult> buildFlutterApkWithSpecifiedDependencyVersions({
143144
required VersionTuple versions,
145+
String? compileSdkOverride,
144146
required Directory tempDir,}) async {
145147
// Create a new flutter project.
146148
final String flutterBin = fileSystem.path.join(getFlutterRoot(), 'bin', 'flutter');
@@ -154,6 +156,14 @@ Future<ProcessResult> buildFlutterApkWithSpecifiedDependencyVersions({
154156

155157
final Directory app = Directory(fileSystem.path.join(tempDir.path, 'dependency_checker_app'));
156158

159+
if (compileSdkOverride != null) {
160+
final File appGradleBuild = File(fileSystem.path.join(
161+
app.path, 'android', 'app', 'build.gradle'));
162+
final String appBuildContent = appGradleBuild.readAsStringSync()
163+
.replaceFirst(flutterCompileSdkString, compileSdkOverride);
164+
appGradleBuild.writeAsStringSync(appBuildContent);
165+
}
166+
157167
// Modify gradle version to passed in version.
158168
final File gradleWrapperProperties = File(fileSystem.path.join(
159169
app.path, 'android', 'gradle', 'wrapper', 'gradle-wrapper.properties'));

0 commit comments

Comments
 (0)