Force use Java 8 for sdkmanager and avdmanager.

This commit is contained in:
Yang Chen
2020-01-20 00:46:38 +11:00
committed by ychescale9
parent 2c5dfd9240
commit e756009f0d
5 changed files with 118 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
import * as core from '@actions/core';
import * as exec from '@actions/exec';
/**
* Returns the current $JAVA_HOME path.
*/
export async function getCurrentJavaHome(): Promise<string> {
let defaultJavaHome = '';
await exec.exec(`sh -c \\"echo $JAVA_HOME"`, [], {
listeners: {
stdout: (data: Buffer) => {
defaultJavaHome += data.toString();
}
}
});
return defaultJavaHome.trim();
}
/**
* Returns the Java 8 $JAVA_HOME path.
*/
export async function getJavaHomeV8(): Promise<string> {
let javaHomeV8 = '';
await exec.exec(`/usr/libexec/java_home -v 1.8`, [], {
listeners: {
stdout: (data: Buffer) => {
javaHomeV8 += data.toString();
}
}
});
return javaHomeV8.trim();
}
/**
* Sets $JAVA_HOME to the specified path.
*/
export function setJavaHome(path: string) {
core.exportVariable('JAVA_HOME', path);
}
+8
View File
@@ -4,6 +4,7 @@ import { checkApiLevel, checkTarget, checkArch, checkDisableAnimations, checkEmu
import { launchEmulator, killEmulator } from './emulator-manager';
import * as exec from '@actions/exec';
import { parseScript } from './script-parser';
import { getCurrentJavaHome, getJavaHomeV8, setJavaHome } from './java-version-manager';
async function run() {
try {
@@ -58,6 +59,10 @@ async function run() {
console.log(`${script}`);
});
// use Java 8 for sdkmanager and avdmanager
const defaultJavaHome = await getCurrentJavaHome();
setJavaHome(await getJavaHomeV8());
// install SDK
await installAndroidSdk(apiLevel, target, arch, emulatorBuild);
@@ -68,6 +73,9 @@ async function run() {
core.setFailed(error.message);
}
// use default JAVA_HOME for running custom script
setJavaHome(defaultJavaHome);
// execute the custom script
try {
for (const script of scripts) {