From 9e58d95cb51e5f48bfec547392daf4c618167b1c Mon Sep 17 00:00:00 2001 From: Dave Olsthoorn Date: Tue, 14 Jul 2020 22:07:34 +0200 Subject: [PATCH] Several fixes These include - register ANDROID_SDK_ROOT - add some license hash handling --- .github/workflows/run-test.yml | 4 ++-- src/main.ts | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run-test.yml b/.github/workflows/run-test.yml index 584b319..de71682 100644 --- a/.github/workflows/run-test.yml +++ b/.github/workflows/run-test.yml @@ -32,8 +32,8 @@ jobs: - name: Run sdkmanager if: runner.os != 'windows' run: | - sdkmanager --sdk_root=${ANDROID_HOME} "build-tools;30.0.1" + sdkmanager --update - name: Run sdkmanager if: runner.os == 'windows' run: | - sdkmanager.bat --sdk_root=${ANDROID_HOME} "build-tools;30.0.1" + sdkmanager.bat --update diff --git a/src/main.ts b/src/main.ts index 24b6237..049311c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,7 @@ import * as core from '@actions/core' import * as path from 'path' import * as tc from '@actions/tool-cache' +import * as fs from 'fs'; const matchers = [ 'android-lint-file-matcher.json', @@ -10,6 +11,10 @@ const matchers = [ 'kotlin-warning-matcher.json' ] +const licenses = { + 'android-sdk-license': '\n24333f8a63b6825ea9c5514f83c2829b004d1fee' +} + let tempDirectory = process.env['RUNNER_TEMP'] || '' const IS_WINDOWS = process.platform === 'win32' @@ -49,17 +54,26 @@ async function run(): Promise { ) const androidHome = path.join(tempDir, 'android') + const cmdlineTools = path.join(androidHome, 'cmdline-tools') const cmdToolsZip = await tc.downloadTool( `https://dl.google.com/android/repository/commandlinetools-${cmdToolsOS}-${cmdToolsVersion}_latest.zip` ) core.debug('extract android commandlinetools') - await tc.extractZip(cmdToolsZip, androidHome) + await tc.extractZip(cmdToolsZip, cmdlineTools) core.exportVariable('ANDROID_HOME', androidHome) + core.exportVariable('ANDROID_SDK_ROOT', androidHome) - core.addPath(path.join(androidHome, 'tools', 'bin')) + core.addPath(path.join(cmdlineTools, 'tools', 'bin')) + + const licenseDir = path.join(androidHome, 'licenses') + fs.existsSync(licenseDir) || fs.mkdirSync(licenseDir) + for (const [licenseName, licenseHash] of Object.entries(licenses)) { + const licenseFile = path.join(licenseDir, licenseName) + fs.appendFileSync(licenseFile, licenseHash) + } core.debug('add matchers') const matchersPath = path.join(__dirname, '..', '.github')