Skip to content

Commit 0e65273

Browse files
ahumeskycopybara-github
authored andcommitted
Change MIN_BUILD_TOOLS_REVISION to 30.0.0
Bazel's Android tools requires Android Build Tools 30.0.0 or newer. See #13409 RELNOTES: The minimum Android build tools version for the Android rules is now 30.0.0 PiperOrigin-RevId: 378014192
1 parent c88b57a commit 0e65273

File tree

4 files changed

+45
-18
lines changed

4 files changed

+45
-18
lines changed

site/docs/tutorial/android-app.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ android_sdk_repository(
176176
name = "androidsdk",
177177
path = "/path/to/Android/sdk",
178178
api_level = 25,
179-
build_tools_version = "26.0.1"
179+
build_tools_version = "30.0.3"
180180
)
181181
```
182182

src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public String toString() {
159159
private static final PathFragment BUILD_TOOLS_DIR = PathFragment.create("build-tools");
160160
private static final PathFragment PLATFORMS_DIR = PathFragment.create("platforms");
161161
private static final PathFragment SYSTEM_IMAGES_DIR = PathFragment.create("system-images");
162-
private static final AndroidRevision MIN_BUILD_TOOLS_REVISION = AndroidRevision.parse("26.0.1");
162+
private static final AndroidRevision MIN_BUILD_TOOLS_REVISION = AndroidRevision.parse("30.0.0");
163163
private static final String PATH_ENV_VAR = "ANDROID_HOME";
164164
private static final ImmutableList<String> PATH_ENV_VAR_AS_LIST = ImmutableList.of(PATH_ENV_VAR);
165165
private static final ImmutableList<String> LOCAL_MAVEN_REPOSITORIES =

src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryRule.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment envi
7272
The version of the Android build tools to use from within the Android SDK. If not specified,
7373
the latest build tools version installed will be used.
7474
75-
<p>Bazel requires build tools version 26.0.1 or later.
75+
<p>Bazel requires build tools version 30.0.0 or later.
7676
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
7777
.add(attr("build_tools_version", STRING).nonconfigurable("WORKSPACE rule"))
7878
/* <!-- #BLAZE_RULE(android_sdk_repository).ATTRIBUTE(api_level) -->

src/test/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryTest.java

+42-15
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ private void scratchSystemImagesDirectories(String... pathFragments) throws Exce
7676
}
7777

7878
private void scratchBuildToolsDirectories(String... versions) throws Exception {
79+
if (versions.length == 0) {
80+
// Use a large version number here so that we don't have to update this test as
81+
// AndroidSdkRepositoryFunction.MIN_BUILD_TOOLS_REVISION increases.
82+
versions = new String[] {"400.0.0"};
83+
}
7984
for (String version : versions) {
8085
scratch.dir("/sdk/build-tools/" + version);
8186
}
@@ -103,7 +108,7 @@ private void scratchExtrasLibrary(
103108
@Test
104109
public void testGeneratedAarImport() throws Exception {
105110
scratchPlatformsDirectories(25);
106-
scratchBuildToolsDirectories("26.0.1");
111+
scratchBuildToolsDirectories();
107112
scratchExtrasLibrary("extras/google/m2repository", "com.google.android", "foo", "1.0.0", "aar");
108113
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
109114
FileSystemUtils.appendIsoLatin1(
@@ -125,7 +130,7 @@ public void testGeneratedAarImport() throws Exception {
125130
@Test
126131
public void testExportsExtrasLibraryArtifacts() throws Exception {
127132
scratchPlatformsDirectories(25);
128-
scratchBuildToolsDirectories("26.0.1");
133+
scratchBuildToolsDirectories();
129134
scratchExtrasLibrary("extras/google/m2repository", "com.google.android", "foo", "1.0.0", "aar");
130135
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
131136
FileSystemUtils.appendIsoLatin1(
@@ -145,7 +150,7 @@ public void testExportsExtrasLibraryArtifacts() throws Exception {
145150
@Test
146151
public void testKnownSdkMavenRepositories() throws Exception {
147152
scratchPlatformsDirectories(25);
148-
scratchBuildToolsDirectories("26.0.1");
153+
scratchBuildToolsDirectories();
149154
scratchExtrasLibrary("extras/google/m2repository", "com.google.android", "a", "1.0.0", "jar");
150155
scratchExtrasLibrary("extras/android/m2repository", "com.android.support", "b", "1.0.0", "aar");
151156
scratchExtrasLibrary("extras/m2repository", "com.android.support", "c", "1.0.1", "aar");
@@ -176,7 +181,7 @@ public void testKnownSdkMavenRepositories() throws Exception {
176181
@Test
177182
public void testSystemImageDirectoriesAreFound() throws Exception {
178183
scratchPlatformsDirectories(25);
179-
scratchBuildToolsDirectories("26.0.1");
184+
scratchBuildToolsDirectories();
180185
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
181186
FileSystemUtils.appendIsoLatin1(
182187
scratch.resolve("WORKSPACE"),
@@ -211,7 +216,7 @@ public void testSystemImageDirectoriesAreFound() throws Exception {
211216
@Test
212217
public void testMalformedSystemImageDirectories() throws Exception {
213218
scratchPlatformsDirectories(25, 26);
214-
scratchBuildToolsDirectories("26.0.1");
219+
scratchBuildToolsDirectories();
215220
scratchSystemImagesDirectories("android-25/default/armeabi-v7a", "android-O/google_apis/x86");
216221
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
217222
FileSystemUtils.appendIsoLatin1(
@@ -225,10 +230,35 @@ public void testMalformedSystemImageDirectories() throws Exception {
225230
assertThat(getConfiguredTarget("@androidsdk//:emulator_images_android_25_arm")).isNotNull();
226231
}
227232

233+
@Test
234+
public void testBuildToolsVersion() throws Exception {
235+
scratchPlatformsDirectories(25);
236+
// Use large version numbers here so that we don't have to update this test as
237+
// AndroidSdkRepositoryFunction.MIN_BUILD_TOOLS_REVISION increases.
238+
scratchBuildToolsDirectories("400.0.1", "400.0.2", "400.0.3");
239+
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
240+
FileSystemUtils.appendIsoLatin1(
241+
scratch.resolve("WORKSPACE"),
242+
"local_repository(name = 'bazel_tools', path = '" + bazelToolsWorkspace + "')",
243+
"android_sdk_repository(",
244+
" name = 'androidsdk',",
245+
" path = '/sdk',",
246+
" build_tools_version = '400.0.2',",
247+
")");
248+
invalidatePackages();
249+
250+
ConfiguredTarget androidSdk = getConfiguredTarget("@androidsdk//:sdk");
251+
assertThat(androidSdk).isNotNull();
252+
assertThat(androidSdk.get(AndroidSdkProvider.PROVIDER).getBuildToolsVersion())
253+
.isEqualTo("400.0.2");
254+
}
255+
228256
@Test
229257
public void testBuildToolsHighestVersionDetection() throws Exception {
230258
scratchPlatformsDirectories(25);
231-
scratchBuildToolsDirectories("26.0.1", "26.0.2");
259+
// Use large version numbers here so that we don't have to update this test as
260+
// AndroidSdkRepositoryFunction.MIN_BUILD_TOOLS_REVISION increases.
261+
scratchBuildToolsDirectories("400.0.1", "400.0.2");
232262
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
233263
FileSystemUtils.appendIsoLatin1(
234264
scratch.resolve("WORKSPACE"),
@@ -243,21 +273,20 @@ public void testBuildToolsHighestVersionDetection() throws Exception {
243273
ConfiguredTarget androidSdk = getConfiguredTarget("@androidsdk//:sdk");
244274
assertThat(androidSdk).isNotNull();
245275
assertThat(androidSdk.get(AndroidSdkProvider.PROVIDER).getBuildToolsVersion())
246-
.isEqualTo("26.0.2");
276+
.isEqualTo("400.0.2");
247277
}
248278

249279
@Test
250280
public void testApiLevelHighestVersionDetection() throws Exception {
251281
scratchPlatformsDirectories(24, 25, 23);
252-
scratchBuildToolsDirectories("26.0.1");
282+
scratchBuildToolsDirectories();
253283
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
254284
FileSystemUtils.appendIsoLatin1(
255285
scratch.resolve("WORKSPACE"),
256286
"local_repository(name = 'bazel_tools', path = '" + bazelToolsWorkspace + "')",
257287
"android_sdk_repository(",
258288
" name = 'androidsdk',",
259289
" path = '/sdk',",
260-
" build_tools_version = '26.0.1',",
261290
")");
262291
invalidatePackages();
263292

@@ -271,7 +300,7 @@ public void testApiLevelHighestVersionDetection() throws Exception {
271300
public void testMultipleAndroidSdkApiLevels() throws Exception {
272301
int[] apiLevels = {23, 24, 25};
273302
scratchPlatformsDirectories(apiLevels);
274-
scratchBuildToolsDirectories("26.0.1");
303+
scratchBuildToolsDirectories();
275304
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
276305
FileSystemUtils.appendIsoLatin1(
277306
scratch.resolve("WORKSPACE"),
@@ -280,7 +309,6 @@ public void testMultipleAndroidSdkApiLevels() throws Exception {
280309
" name = 'androidsdk',",
281310
" path = '/sdk',",
282311
" api_level = 24,",
283-
" build_tools_version = '26.0.1',",
284312
")");
285313
invalidatePackages();
286314

@@ -296,7 +324,7 @@ public void testMultipleAndroidSdkApiLevels() throws Exception {
296324
@Test
297325
public void testMissingApiLevel() throws Exception {
298326
scratchPlatformsDirectories(24);
299-
scratchBuildToolsDirectories("26.0.1");
327+
scratchBuildToolsDirectories();
300328
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
301329
FileSystemUtils.appendIsoLatin1(
302330
scratch.resolve("WORKSPACE"),
@@ -305,7 +333,6 @@ public void testMissingApiLevel() throws Exception {
305333
" name = 'androidsdk',",
306334
" path = '/sdk',",
307335
" api_level = 25,",
308-
" build_tools_version = '26.0.1',",
309336
")");
310337
invalidatePackages();
311338
reporter.removeHandler(failFastHandler);
@@ -326,7 +353,7 @@ public void testMissingApiLevel() throws Exception {
326353
@Test
327354
public void testFilesInSystemImagesDirectories() throws Exception {
328355
scratchPlatformsDirectories(24);
329-
scratchBuildToolsDirectories("26.0.1");
356+
scratchBuildToolsDirectories();
330357
scratch.file("/sdk/system-images/.DS_Store");
331358
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
332359
FileSystemUtils.appendIsoLatin1(
@@ -343,7 +370,7 @@ public void testFilesInSystemImagesDirectories() throws Exception {
343370

344371
@Test
345372
public void testMissingPlatformsDirectory() throws Exception {
346-
scratchBuildToolsDirectories("26.0.1");
373+
scratchBuildToolsDirectories();
347374
String bazelToolsWorkspace = scratch.dir("bazel_tools_workspace").getPathString();
348375
FileSystemUtils.appendIsoLatin1(
349376
scratch.resolve("WORKSPACE"),

0 commit comments

Comments
 (0)