feat: added versions resolution logic to use user's input.

Signed-off-by: Dmitry Kisler <admin@dkisler.com>
This commit is contained in:
Dmitry Kisler 2023-10-10 11:46:36 +02:00
parent c68fac3149
commit 45ec8bfee0
No known key found for this signature in database
GPG key ID: 46C0A987D58548F6
4 changed files with 7 additions and 5 deletions

3
dist/index.js vendored
View file

@ -84,7 +84,7 @@ async function getRelease (version, fetchReleasesFn = fetchReleases) {
const versionsFound = releases.map(release => release.version); const versionsFound = releases.map(release => release.version);
let versionSelected; let versionSelected;
if (version === latestVersionLabel) { if (version === latestVersionLabel) {
versionSelected = findLatestVersion(versionsFound); versionSelected = await findLatestVersion(versionsFound);
} else { } else {
versionSelected = await findLatestVersionInRange(versionsFound, versionsRange); versionSelected = await findLatestVersionInRange(versionsFound, versionsRange);
} }
@ -249,7 +249,6 @@ async function run () {
const release = await releases.getRelease(version); const release = await releases.getRelease(version);
const platform = mapOS(osPlatform); const platform = mapOS(osPlatform);
const arch = mapArch(osArch); const arch = mapArch(osArch);
core.debug(`Getting build for OpenTofu version ${release.version}: ${platform} ${arch}`);
const build = release.getBuild(platform, arch); const build = release.getBuild(platform, arch);
if (!build) { if (!build) {
throw new Error(`OpenTofu version ${version} not available for ${platform} and ${arch}`); throw new Error(`OpenTofu version ${version} not available for ${platform} and ${arch}`);

View file

@ -78,7 +78,7 @@ async function getRelease (version, fetchReleasesFn = fetchReleases) {
const versionsFound = releases.map(release => release.version); const versionsFound = releases.map(release => release.version);
let versionSelected; let versionSelected;
if (version === latestVersionLabel) { if (version === latestVersionLabel) {
versionSelected = findLatestVersion(versionsFound); versionSelected = await findLatestVersion(versionsFound);
} else { } else {
versionSelected = await findLatestVersionInRange(versionsFound, versionsRange); versionSelected = await findLatestVersionInRange(versionsFound, versionsRange);
} }

View file

@ -137,7 +137,6 @@ async function run () {
const release = await releases.getRelease(version); const release = await releases.getRelease(version);
const platform = mapOS(osPlatform); const platform = mapOS(osPlatform);
const arch = mapArch(osArch); const arch = mapArch(osArch);
core.debug(`Getting build for OpenTofu version ${release.version}: ${platform} ${arch}`);
const build = release.getBuild(platform, arch); const build = release.getBuild(platform, arch);
if (!build) { if (!build) {
throw new Error(`OpenTofu version ${version} not available for ${platform} and ${arch}`); throw new Error(`OpenTofu version ${version} not available for ${platform} and ${arch}`);

View file

@ -186,10 +186,14 @@ function mockFetchReleases () {
} }
describe('getRelease', () => { describe('getRelease', () => {
it('shall return the latest release', async () => { it('shall return \'1.6.0-alpha2\' release', async () => {
const version = '<1.6.0-alpha3'; const version = '<1.6.0-alpha3';
const want = mockFetchReleases().find(el => el.version === '1.6.0-alpha2'); const want = mockFetchReleases().find(el => el.version === '1.6.0-alpha2');
const gotRelease = await pkg.getRelease(version, mockFetchReleases); const gotRelease = await pkg.getRelease(version, mockFetchReleases);
expect(gotRelease).toEqual(want); expect(gotRelease).toEqual(want);
}); });
it('shall return the latest release', async () => {
await pkg.getRelease('latest', mockFetchReleases);
});
}); });