From b5ac8dfbfe63bd56b39a1779be7c8109a573ac16 Mon Sep 17 00:00:00 2001 From: Yang Date: Sat, 14 Nov 2020 18:49:59 +1100 Subject: [PATCH] Update cmdline-tools to 3.0. --- lib/sdk-installer.js | 14 +++++++------- src/sdk-installer.ts | 15 +++++++-------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/lib/sdk-installer.js b/lib/sdk-installer.js index 9d14bf67..01cad590 100644 --- a/lib/sdk-installer.js +++ b/lib/sdk-installer.js @@ -32,10 +32,11 @@ exports.installAndroidSdk = void 0; const core = __importStar(require("@actions/core")); const exec = __importStar(require("@actions/exec")); const io = __importStar(require("@actions/io")); +const tc = __importStar(require("@actions/tool-cache")); const fs = __importStar(require("fs")); const BUILD_TOOLS_VERSION = '30.0.2'; -const CMDLINE_TOOLS_URL_MAC = 'https://dl.google.com/android/repository/commandlinetools-mac-6609375_latest.zip'; -const CMDLINE_TOOLS_URL_LINUX = 'https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip'; +const CMDLINE_TOOLS_URL_MAC = 'https://dl.google.com/android/repository/commandlinetools-mac-6858069_latest.zip'; +const CMDLINE_TOOLS_URL_LINUX = 'https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip'; /** * Installs & updates the Android SDK for the macOS platform, including SDK platform for the chosen API level, latest build tools, platform tools, Android Emulator, * and the system image for the chosen API level, CPU arch, and target. @@ -50,12 +51,11 @@ function installAndroidSdk(apiLevel, target, arch, emulatorBuild, ndkVersion, cm if (!fs.existsSync(cmdlineToolsPath)) { console.log('Installing new cmdline-tools.'); const sdkUrl = isOnMac ? CMDLINE_TOOLS_URL_MAC : CMDLINE_TOOLS_URL_LINUX; - yield io.mkdirP(`${process.env.ANDROID_HOME}/cmdline-tools`); - yield exec.exec(`curl -fo commandlinetools.zip ${sdkUrl}`); - yield exec.exec(`unzip -q commandlinetools.zip -d ${cmdlineToolsPath}`); - yield io.rmRF('commandlinetools.zip'); + const downloadPath = yield tc.downloadTool(sdkUrl); + yield tc.extractZip(downloadPath, cmdlineToolsPath); + yield io.mv(`${cmdlineToolsPath}/cmdline-tools`, `${cmdlineToolsPath}/latest`); // add paths for commandline-tools and platform-tools - core.addPath(`${cmdlineToolsPath}/tools:${cmdlineToolsPath}/tools/bin:${process.env.ANDROID_HOME}/platform-tools`); + core.addPath(`${cmdlineToolsPath}/latest:${cmdlineToolsPath}/latest/bin:${process.env.ANDROID_HOME}/platform-tools`); } // additional permission and license requirements for Linux const sdkPreviewLicensePath = `${process.env.ANDROID_HOME}/licenses/android-sdk-preview-license`; diff --git a/src/sdk-installer.ts b/src/sdk-installer.ts index d71e5628..c609015c 100644 --- a/src/sdk-installer.ts +++ b/src/sdk-installer.ts @@ -1,11 +1,12 @@ import * as core from '@actions/core'; import * as exec from '@actions/exec'; import * as io from '@actions/io'; +import * as tc from '@actions/tool-cache'; import * as fs from 'fs'; const BUILD_TOOLS_VERSION = '30.0.2'; -const CMDLINE_TOOLS_URL_MAC = 'https://dl.google.com/android/repository/commandlinetools-mac-6609375_latest.zip'; -const CMDLINE_TOOLS_URL_LINUX = 'https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip'; +const CMDLINE_TOOLS_URL_MAC = 'https://dl.google.com/android/repository/commandlinetools-mac-6858069_latest.zip'; +const CMDLINE_TOOLS_URL_LINUX = 'https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip'; /** * Installs & updates the Android SDK for the macOS platform, including SDK platform for the chosen API level, latest build tools, platform tools, Android Emulator, @@ -22,13 +23,11 @@ export async function installAndroidSdk(apiLevel: number, target: string, arch: if (!fs.existsSync(cmdlineToolsPath)) { console.log('Installing new cmdline-tools.'); const sdkUrl = isOnMac ? CMDLINE_TOOLS_URL_MAC : CMDLINE_TOOLS_URL_LINUX; - await io.mkdirP(`${process.env.ANDROID_HOME}/cmdline-tools`); - await exec.exec(`curl -fo commandlinetools.zip ${sdkUrl}`); - await exec.exec(`unzip -q commandlinetools.zip -d ${cmdlineToolsPath}`); - await io.rmRF('commandlinetools.zip'); - + const downloadPath = await tc.downloadTool(sdkUrl); + await tc.extractZip(downloadPath, cmdlineToolsPath); + await io.mv(`${cmdlineToolsPath}/cmdline-tools`, `${cmdlineToolsPath}/latest`); // add paths for commandline-tools and platform-tools - core.addPath(`${cmdlineToolsPath}/tools:${cmdlineToolsPath}/tools/bin:${process.env.ANDROID_HOME}/platform-tools`); + core.addPath(`${cmdlineToolsPath}/latest:${cmdlineToolsPath}/latest/bin:${process.env.ANDROID_HOME}/platform-tools`); } // additional permission and license requirements for Linux