diff --git a/__tests__/distributors/adopt-installer.test.ts b/__tests__/distributors/adopt-installer.test.ts index 02b74d4..b1d7f6d 100644 --- a/__tests__/distributors/adopt-installer.test.ts +++ b/__tests__/distributors/adopt-installer.test.ts @@ -1,11 +1,17 @@ import {HttpClient} from '@actions/http-client'; -import {AdoptDistribution, AdoptImplementation} from '../../src/distributions/adopt/installer'; +import { + AdoptDistribution, + AdoptImplementation +} from '../../src/distributions/adopt/installer'; import {JavaInstallerOptions} from '../../src/distributions/base-models'; import os from 'os'; import manifestData from '../data/adopt.json'; -import {TemurinDistribution, TemurinImplementation} from "../../src/distributions/temurin/installer"; +import { + TemurinDistribution, + TemurinImplementation +} from '../../src/distributions/temurin/installer'; describe('getAvailableVersions', () => { let spyHttpClient: jest.SpyInstance; @@ -245,83 +251,87 @@ describe('findPackageForDownload', () => { }); describe('delegates to Temurin', () => { - it.each([ - ['9', '9.0.7+10'], - ['15', '15.0.2+7'], - ['15.0', '15.0.2+7'], - ['15.0.2', '15.0.2+7'], - ['15.0.1', '15.0.1+9.1'], - ['11.x', '11.0.10+9'], - ['x', '15.0.2+7'], - ['12', '12.0.2+10.3'], // make sure that '12.0.2+10.1', '12.0.2+10.3', '12.0.2+10.2' are sorted correctly - ['12.0.2+10.1', '12.0.2+10.1'], - ['15.0.1+9', '15.0.1+9'], - ['15.0.1+9.1', '15.0.1+9.1'] - ])('version is resolved correctly %s -> %s', async (input, expected) => { + it.each([ + ['9', '9.0.7+10'], + ['15', '15.0.2+7'], + ['15.0', '15.0.2+7'], + ['15.0.2', '15.0.2+7'], + ['15.0.1', '15.0.1+9.1'], + ['11.x', '11.0.10+9'], + ['x', '15.0.2+7'], + ['12', '12.0.2+10.3'], // make sure that '12.0.2+10.1', '12.0.2+10.3', '12.0.2+10.2' are sorted correctly + ['12.0.2+10.1', '12.0.2+10.1'], + ['15.0.1+9', '15.0.1+9'], + ['15.0.1+9.1', '15.0.1+9.1'] + ])('version is resolved correctly %s -> %s', async (input, expected) => { + const temurinDistribution = new TemurinDistribution( + { + version: '11', + architecture: 'x64', + packageType: 'jdk', + checkLatest: false + }, + TemurinImplementation.Hotspot + ); - const temurinDistribution = new TemurinDistribution( - { - version: '11', - architecture: 'x64', - packageType: 'jdk', - checkLatest: false - }, - TemurinImplementation.Hotspot - ); + const distribution = new AdoptDistribution( + { + version: '11', + architecture: 'x64', + packageType: 'jdk', + checkLatest: false + }, + AdoptImplementation.Hotspot, + temurinDistribution + ); - const distribution = new AdoptDistribution( - { - version: '11', - architecture: 'x64', - packageType: 'jdk', - checkLatest: false - }, - AdoptImplementation.Hotspot, - temurinDistribution - ); - - temurinDistribution['getAvailableVersions'] = async () => manifestData as any; - const resolvedVersion = await distribution['findPackageForDownload'](input); - expect(resolvedVersion.version).toBe(expected); - }); + temurinDistribution['getAvailableVersions'] = async () => + manifestData as any; + const resolvedVersion = await distribution['findPackageForDownload']( + input + ); + expect(resolvedVersion.version).toBe(expected); + }); }); + describe('Falls back if Temurin fails', () => { + it.each([['9', '9.0.7+10']])( + 'version is resolved correctly %s -> %s', + async (input, expected) => { + const temurinDistribution = new TemurinDistribution( + { + version: '11', + architecture: 'x64', + packageType: 'jdk', + checkLatest: false + }, + TemurinImplementation.Hotspot + ); - describe('Falls back if Temurin fails', () => { - it.each([ - ['9', '9.0.7+10'] - ])('version is resolved correctly %s -> %s', async (input, expected) => { + const distribution = new AdoptDistribution( + { + version: '11', + architecture: 'x64', + packageType: 'jdk', + checkLatest: false + }, + AdoptImplementation.Hotspot, + temurinDistribution + ); - const temurinDistribution = new TemurinDistribution( - { - version: '11', - architecture: 'x64', - packageType: 'jdk', - checkLatest: false - }, - TemurinImplementation.Hotspot - ); + temurinDistribution['findPackageForDownload'] = async () => + new Promise(function () { + throw new Error('Could not find satisfied version for SemVer'); + }); + distribution['getAvailableVersions'] = async () => manifestData as any; - const distribution = new AdoptDistribution( - { - version: '11', - architecture: 'x64', - packageType: 'jdk', - checkLatest: false - }, - AdoptImplementation.Hotspot, - temurinDistribution - ); - - temurinDistribution['findPackageForDownload'] = async () => new Promise(function () { - throw new Error("Could not find satisfied version for SemVer") - }); - distribution['getAvailableVersions'] = async () => manifestData as any; - - const resolvedVersion = await distribution['findPackageForDownload'](input); - expect(resolvedVersion.version).toBe(expected); - }); - }); + const resolvedVersion = await distribution['findPackageForDownload']( + input + ); + expect(resolvedVersion.version).toBe(expected); + } + ); + }); it('version is found but binaries list is empty', async () => { const distribution = new AdoptDistribution( diff --git a/src/distributions/adopt/installer.ts b/src/distributions/adopt/installer.ts index 33ccfb7..5799798 100644 --- a/src/distributions/adopt/installer.ts +++ b/src/distributions/adopt/installer.ts @@ -17,7 +17,7 @@ import { getDownloadArchiveExtension, isVersionSatisfies } from '../../util'; -import {TemurinDistribution, TemurinImplementation} from "../temurin/installer"; +import {TemurinDistribution, TemurinImplementation} from '../temurin/installer'; export enum AdoptImplementation { Hotspot = 'Hotspot', @@ -33,36 +33,45 @@ export class AdoptDistribution extends JavaBase { super(`Adopt-${jvmImpl}`, installerOptions); if (temurinDistribution != null && jvmImpl != AdoptImplementation.Hotspot) { - throw new Error("Only Hotspot JVM is supported by Temurin.") + throw new Error('Only Hotspot JVM is supported by Temurin.'); } // Only use the temurin repo for Hotspot JVMs if (temurinDistribution == null && jvmImpl == AdoptImplementation.Hotspot) { this.temurinDistribution = new TemurinDistribution( - installerOptions, - TemurinImplementation.Hotspot); + installerOptions, + TemurinImplementation.Hotspot + ); } } protected async findPackageForDownload( - version: string + version: string ): Promise { - if (this.jvmImpl == AdoptImplementation.Hotspot) { - core.notice("AdoptOpenJDK has moved to Eclipse Temurin https://github.com/actions/setup-java#supported-distributions please consider changing to the 'temurin' distribution type in your setup-java configuration.") + core.notice( + "AdoptOpenJDK has moved to Eclipse Temurin https://github.com/actions/setup-java#supported-distributions please consider changing to the 'temurin' distribution type in your setup-java configuration." + ); } - if (this.jvmImpl == AdoptImplementation.Hotspot && this.temurinDistribution != null) { + if ( + this.jvmImpl == AdoptImplementation.Hotspot && + this.temurinDistribution != null + ) { try { - let result = await this.temurinDistribution.findPackageForDownload(version) + let result = await this.temurinDistribution.findPackageForDownload( + version + ); if (result != undefined) { - return result + return result; } } catch (error) { if (error.message.includes('Could not find satisfied version')) { - core.notice("The JVM you are looking for could not be found in the Temurin repository, this likely indicates " + - "that you are using an out of date version of Java, consider updating and moving to using the Temurin distribution type in setup-java.") + core.notice( + 'The JVM you are looking for could not be found in the Temurin repository, this likely indicates ' + + 'that you are using an out of date version of Java, consider updating and moving to using the Temurin distribution type in setup-java.' + ); } } } @@ -72,7 +81,7 @@ export class AdoptDistribution extends JavaBase { } private async findPackageForDownloadOldAdoptOpenJdk( - version: string + version: string ): Promise { const availableVersionsRaw = await this.getAvailableVersions(); const availableVersionsWithBinaries = availableVersionsRaw