diff --git a/lib/sdk-installer.js b/lib/sdk-installer.js index 1117d9ec..b420f0ff 100644 --- a/lib/sdk-installer.js +++ b/lib/sdk-installer.js @@ -32,6 +32,7 @@ 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'; @@ -52,11 +53,10 @@ function installAndroidSdk(apiLevel, target, arch, emulatorBuild, ndkVersion, cm const cmdlineToolsPath = `${process.env.ANDROID_HOME}/cmdline-tools`; if (!fs.existsSync(cmdlineToolsPath)) { console.log('Installing new cmdline-tools.'); - const sdkUrl = IS_MAC ? CMDLINE_TOOLS_URL_MAC : IS_WINDOWS ? CMDLINE_TOOLS_URL_WIN : 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 sdkUrl = IS_MAC ? CMDLINE_TOOLS_URL_MAC : IS_WINDOWS ? CMDLINE_TOOLS_URL_WIN : CMDLINE_TOOLS_URL_LINUX; + const downloadPath = yield tc.downloadTool(sdkUrl); + yield tc.extractZip(downloadPath, cmdlineToolsPath); // add paths for commandline-tools and platform-tools core.addPath(`${cmdlineToolsPath}/tools:${cmdlineToolsPath}/tools/bin:${process.env.ANDROID_HOME}/platform-tools`); } diff --git a/src/sdk-installer.ts b/src/sdk-installer.ts index 361c9b44..3d3dc9c0 100644 --- a/src/sdk-installer.ts +++ b/src/sdk-installer.ts @@ -1,6 +1,7 @@ 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'; @@ -24,11 +25,10 @@ export async function installAndroidSdk(apiLevel: number, target: string, arch: const cmdlineToolsPath = `${process.env.ANDROID_HOME}/cmdline-tools`; if (!fs.existsSync(cmdlineToolsPath)) { console.log('Installing new cmdline-tools.'); - const sdkUrl = IS_MAC ? CMDLINE_TOOLS_URL_MAC : IS_WINDOWS ? CMDLINE_TOOLS_URL_WIN : 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 sdkUrl = IS_MAC ? CMDLINE_TOOLS_URL_MAC : IS_WINDOWS ? CMDLINE_TOOLS_URL_WIN : CMDLINE_TOOLS_URL_LINUX; + const downloadPath = await tc.downloadTool(sdkUrl); + await tc.extractZip(downloadPath, cmdlineToolsPath); // add paths for commandline-tools and platform-tools core.addPath(`${cmdlineToolsPath}/tools:${cmdlineToolsPath}/tools/bin:${process.env.ANDROID_HOME}/platform-tools`);