mirror of
https://github.com/actions/setup-java.git
synced 2025-04-20 01:46:46 +00:00
Add and configure ESLint and update configuration for Prettier (#458)
* Add ESLint config and update Prettier * Update test files * Rebuild action * Update docs * Update licenses * Update tsconfig * Rebuild action * Update tsconfig.json * Fix console.time calls * Rebuild action * Rebuild action on Linux
This commit is contained in:
parent
ea15b3b99c
commit
0de5c66fc0
55 changed files with 4402 additions and 1317 deletions
|
@ -4,9 +4,13 @@ import * as fs from 'fs';
|
|||
import semver from 'semver';
|
||||
import path from 'path';
|
||||
import * as httpm from '@actions/http-client';
|
||||
import { getToolcachePath, isVersionSatisfies } from '../util';
|
||||
import { JavaDownloadRelease, JavaInstallerOptions, JavaInstallerResults } from './base-models';
|
||||
import { MACOS_JAVA_CONTENT_POSTFIX } from '../constants';
|
||||
import {getToolcachePath, isVersionSatisfies} from '../util';
|
||||
import {
|
||||
JavaDownloadRelease,
|
||||
JavaInstallerOptions,
|
||||
JavaInstallerResults
|
||||
} from './base-models';
|
||||
import {MACOS_JAVA_CONTENT_POSTFIX} from '../constants';
|
||||
import os from 'os';
|
||||
|
||||
export abstract class JavaBase {
|
||||
|
@ -17,13 +21,16 @@ export abstract class JavaBase {
|
|||
protected stable: boolean;
|
||||
protected checkLatest: boolean;
|
||||
|
||||
constructor(protected distribution: string, installerOptions: JavaInstallerOptions) {
|
||||
constructor(
|
||||
protected distribution: string,
|
||||
installerOptions: JavaInstallerOptions
|
||||
) {
|
||||
this.http = new httpm.HttpClient('actions/setup-java', undefined, {
|
||||
allowRetries: true,
|
||||
maxRetries: 3
|
||||
});
|
||||
|
||||
({ version: this.version, stable: this.stable } = this.normalizeVersion(
|
||||
({version: this.version, stable: this.stable} = this.normalizeVersion(
|
||||
installerOptions.version
|
||||
));
|
||||
this.architecture = installerOptions.architecture || os.arch();
|
||||
|
@ -31,8 +38,12 @@ export abstract class JavaBase {
|
|||
this.checkLatest = installerOptions.checkLatest;
|
||||
}
|
||||
|
||||
protected abstract downloadTool(javaRelease: JavaDownloadRelease): Promise<JavaInstallerResults>;
|
||||
protected abstract findPackageForDownload(range: string): Promise<JavaDownloadRelease>;
|
||||
protected abstract downloadTool(
|
||||
javaRelease: JavaDownloadRelease
|
||||
): Promise<JavaInstallerResults>;
|
||||
protected abstract findPackageForDownload(
|
||||
range: string
|
||||
): Promise<JavaDownloadRelease>;
|
||||
|
||||
public async setupJava(): Promise<JavaInstallerResults> {
|
||||
let foundJava = this.findInToolcache();
|
||||
|
@ -52,7 +63,10 @@ export abstract class JavaBase {
|
|||
}
|
||||
|
||||
// JDK folder may contain postfix "Contents/Home" on macOS
|
||||
const macOSPostfixPath = path.join(foundJava.path, MACOS_JAVA_CONTENT_POSTFIX);
|
||||
const macOSPostfixPath = path.join(
|
||||
foundJava.path,
|
||||
MACOS_JAVA_CONTENT_POSTFIX
|
||||
);
|
||||
if (process.platform === 'darwin' && fs.existsSync(macOSPostfixPath)) {
|
||||
foundJava.path = macOSPostfixPath;
|
||||
}
|
||||
|
@ -96,7 +110,12 @@ export abstract class JavaBase {
|
|||
// so replace "/hostedtoolcache/Java/11.0.3-4/x64" to "/hostedtoolcache/Java/11.0.3+4/x64" when retrieves to cache
|
||||
// related issue: https://github.com/actions/virtual-environments/issues/3014
|
||||
.replace('-', '+'),
|
||||
path: getToolcachePath(this.toolcacheFolderName, item, this.architecture) || '',
|
||||
path:
|
||||
getToolcachePath(
|
||||
this.toolcacheFolderName,
|
||||
item,
|
||||
this.architecture
|
||||
) || '',
|
||||
stable: !item.includes('-ea')
|
||||
};
|
||||
})
|
||||
|
@ -149,7 +168,10 @@ export abstract class JavaBase {
|
|||
core.setOutput('distribution', this.distribution);
|
||||
core.setOutput('path', toolPath);
|
||||
core.setOutput('version', version);
|
||||
core.exportVariable(`JAVA_HOME_${majorVersion}_${this.architecture.toUpperCase()}`, toolPath);
|
||||
core.exportVariable(
|
||||
`JAVA_HOME_${majorVersion}_${this.architecture.toUpperCase()}`,
|
||||
toolPath
|
||||
);
|
||||
}
|
||||
|
||||
protected distributionArchitecture(): string {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue