mirror of
https://github.com/opentofu/setup-opentofu.git
synced 2025-12-06 07:50:37 +00:00
feat: added versions resolution logic to use user's input.
Signed-off-by: Dmitry Kisler <admin@dkisler.com>
This commit is contained in:
parent
c68fac3149
commit
45ec8bfee0
4 changed files with 7 additions and 5 deletions
3
dist/index.js
vendored
3
dist/index.js
vendored
|
|
@ -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}`);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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}`);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue