From 502a6650cd514121819f95acf949251faa6cc558 Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Mon, 22 Mar 2021 10:51:33 +0300 Subject: [PATCH] Add "Contents/Home" postfix on macOS if provider creates it (#139) * Update e2e-versions.yml * Update e2e-versions.yml * implement fix * Update e2e-versions.yml * Update installer.ts * fix filter logic * Update e2e-versions.yml * remove extra logic * Update e2e-versions.yml --- .github/workflows/e2e-versions.yml | 6 ++++++ dist/setup/index.js | 11 +++++++---- src/distributions/adopt/installer.ts | 4 ---- src/distributions/base-installer.ts | 8 ++++++++ 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.github/workflows/e2e-versions.yml b/.github/workflows/e2e-versions.yml index 40b2b47..9bd6dad 100644 --- a/.github/workflows/e2e-versions.yml +++ b/.github/workflows/e2e-versions.yml @@ -88,6 +88,9 @@ jobs: with: java-version: ${{ matrix.version }} distribution: zulu + - name: Verify Java + run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" + shell: bash setup-java-ea-versions-adopt: name: adopt ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} @@ -107,6 +110,9 @@ jobs: with: java-version: ${{ matrix.version }} distribution: adopt + - name: Verify Java + run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" + shell: bash setup-java-custom-package-type: name: ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} diff --git a/dist/setup/index.js b/dist/setup/index.js index f102f90..28da6b3 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -3951,10 +3951,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.JavaBase = void 0; const tc = __importStar(__webpack_require__(139)); const core = __importStar(__webpack_require__(470)); +const fs = __importStar(__webpack_require__(747)); const semver_1 = __importDefault(__webpack_require__(876)); const path_1 = __importDefault(__webpack_require__(622)); const httpm = __importStar(__webpack_require__(539)); const util_1 = __webpack_require__(322); +const constants_1 = __webpack_require__(211); class JavaBase { constructor(distribution, installerOptions) { this.distribution = distribution; @@ -3978,6 +3980,11 @@ class JavaBase { foundJava = yield this.downloadTool(javaRelease); core.info(`Java ${foundJava.version} was downloaded`); } + // JDK folder may contain postfix "Contents/Home" on macOS + const macOSPostfixPath = path_1.default.join(foundJava.path, constants_1.MACOS_JAVA_CONTENT_POSTFIX); + if (process.platform === 'darwin' && fs.existsSync(macOSPostfixPath)) { + foundJava.path = macOSPostfixPath; + } core.info(`Setting Java ${foundJava.version} as the default`); this.setJavaDefault(foundJava.version, foundJava.path); return foundJava; @@ -26861,7 +26868,6 @@ const fs_1 = __importDefault(__webpack_require__(747)); const path_1 = __importDefault(__webpack_require__(622)); const semver_1 = __importDefault(__webpack_require__(876)); const base_installer_1 = __webpack_require__(83); -const constants_1 = __webpack_require__(211); const util_1 = __webpack_require__(322); class AdoptDistribution extends base_installer_1.JavaBase { constructor(installerOptions) { @@ -26907,9 +26913,6 @@ class AdoptDistribution extends base_installer_1.JavaBase { const archivePath = path_1.default.join(extractedJavaPath, archiveName); const version = this.getToolcacheVersionName(javaRelease.version); javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, version, this.architecture); - if (process.platform === 'darwin') { - javaPath = path_1.default.join(javaPath, constants_1.MACOS_JAVA_CONTENT_POSTFIX); - } return { version: javaRelease.version, path: javaPath }; }); } diff --git a/src/distributions/adopt/installer.ts b/src/distributions/adopt/installer.ts index 5b316e5..49a01f0 100644 --- a/src/distributions/adopt/installer.ts +++ b/src/distributions/adopt/installer.ts @@ -67,10 +67,6 @@ export class AdoptDistribution extends JavaBase { javaPath = await tc.cacheDir(archivePath, this.toolcacheFolderName, version, this.architecture); - if (process.platform === 'darwin') { - javaPath = path.join(javaPath, MACOS_JAVA_CONTENT_POSTFIX); - } - return { version: javaRelease.version, path: javaPath }; } diff --git a/src/distributions/base-installer.ts b/src/distributions/base-installer.ts index 8c4698c..6f1312c 100644 --- a/src/distributions/base-installer.ts +++ b/src/distributions/base-installer.ts @@ -1,10 +1,12 @@ import * as tc from '@actions/tool-cache'; import * as core from '@actions/core'; +import * as fs from 'fs'; import semver from 'semver'; import path from 'path'; import * as httpm from '@actions/http-client'; import { getToolcachePath, getVersionFromToolcachePath, isVersionSatisfies } from '../util'; import { JavaDownloadRelease, JavaInstallerOptions, JavaInstallerResults } from './base-models'; +import { MACOS_JAVA_CONTENT_POSTFIX } from '../constants'; export abstract class JavaBase { protected http: httpm.HttpClient; @@ -40,6 +42,12 @@ export abstract class JavaBase { core.info(`Java ${foundJava.version} was downloaded`); } + // JDK folder may contain postfix "Contents/Home" on macOS + const macOSPostfixPath = path.join(foundJava.path, MACOS_JAVA_CONTENT_POSTFIX); + if (process.platform === 'darwin' && fs.existsSync(macOSPostfixPath)) { + foundJava.path = macOSPostfixPath; + } + core.info(`Setting Java ${foundJava.version} as the default`); this.setJavaDefault(foundJava.version, foundJava.path);