1
0
Fork 0
mirror of https://code.forgejo.org/actions/setup-node synced 2025-03-15 06:36:57 +01:00
This commit is contained in:
Aparna Jyothi 2025-03-04 13:07:51 +05:30
parent 8495358ea6
commit 8b9906e7bf
3 changed files with 11 additions and 68 deletions

38
dist/setup/index.js vendored
View file

@ -100124,19 +100124,6 @@ class BaseDistribution {
return evaluatedVersion; return evaluatedVersion;
}); });
} }
findMirrorVersionInDist(nodeJsVersions) {
return __awaiter(this, void 0, void 0, function* () {
if (!nodeJsVersions) {
nodeJsVersions = yield this.getNodeJsVersions();
}
const versions = this.filterVersions(nodeJsVersions);
const evaluatedVersion = this.evaluateVersions(versions);
if (!evaluatedVersion) {
throw new Error(`Unable to find Node version '${this.nodeInfo.versionSpec}' for platform ${this.osPlat} and architecture ${this.nodeInfo.arch}.`);
}
return evaluatedVersion;
});
}
evaluateVersions(versions) { evaluateVersions(versions) {
let version = ''; let version = '';
const { range, options } = this.validRange(this.nodeInfo.versionSpec); const { range, options } = this.validRange(this.nodeInfo.versionSpec);
@ -100718,43 +100705,28 @@ class OfficialBuilds extends base_distribution_1.default {
} }
downloadFromMirrorURL() { downloadFromMirrorURL() {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
// Fetch the available Node.js versions from the mirror
const nodeJsVersions = yield this.getMirrorUrlVersions(); const nodeJsVersions = yield this.getMirrorUrlVersions();
// Filter the available versions based on your criteria
const versions = this.filterVersions(nodeJsVersions); const versions = this.filterVersions(nodeJsVersions);
let evaluatedVersion; const evaluatedVersion = this.evaluateVersions(versions);
// If `checkLatest` is set, use the latest version from the mirror
if (this.nodeInfo.checkLatest) {
evaluatedVersion = yield this.findMirrorVersionInDist(nodeJsVersions);
this.nodeInfo.versionSpec = evaluatedVersion; // Update versionSpec to the latest version
}
else {
// Otherwise, evaluate the version from the filtered list
evaluatedVersion = this.evaluateVersions(versions);
}
// If no version is found, throw an error
if (!evaluatedVersion) { if (!evaluatedVersion) {
throw new Error(`Unable to find Node version '${this.nodeInfo.versionSpec}' for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} from the provided mirror-url ${this.nodeInfo.mirrorURL}. Please check the mirror-url.`); throw new Error(`Unable to find Node version '${this.nodeInfo.versionSpec}' for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} from the provided mirror-url ${this.nodeInfo.mirrorURL}. Please check the mirror-url`);
} }
// Get the tool name for downloading
const toolName = this.getNodejsMirrorURLInfo(evaluatedVersion); const toolName = this.getNodejsMirrorURLInfo(evaluatedVersion);
try { try {
// Try to download the Node.js binaries
const toolPath = yield this.downloadNodejs(toolName); const toolPath = yield this.downloadNodejs(toolName);
return toolPath; return toolPath;
} }
catch (error) { catch (error) {
// Handle specific HTTP error (404 - Not Found)
if (error instanceof tc.HTTPError && error.httpStatusCode === 404) { if (error instanceof tc.HTTPError && error.httpStatusCode === 404) {
core.setFailed(`Node version ${this.nodeInfo.versionSpec} for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} was found but failed to download. ` + core.setFailed(`Node version ${this.nodeInfo.versionSpec} for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} was found but failed to download. ` +
'This usually happens when downloadable binaries are not fully updated at https://nodejs.org/. ' + 'This usually happens when downloadable binaries are not fully updated at https://nodejs.org/. ' +
'To resolve this issue you may either fall back to the older version or try again later.'); 'To resolve this issue you may either fall back to the older version or try again later.');
} }
else { else {
// For any other error, log the actual error message // For any other error type, you can log the error message.
core.setFailed(`An unexpected error occurred:'url might not be correct'}`); core.setFailed(`An unexpected error occurred like url might not correct`);
} }
throw error; // Re-throw the error after logging throw error;
} }
}); });
} }

View file

@ -63,20 +63,6 @@ export default abstract class BaseDistribution {
return evaluatedVersion; return evaluatedVersion;
} }
protected async findMirrorVersionInDist(nodeJsVersions?: INodeVersion[]) {
if (!nodeJsVersions) {
nodeJsVersions = await this.getNodeJsVersions();
}
const versions = this.filterVersions(nodeJsVersions);
const evaluatedVersion = this.evaluateVersions(versions);
if (!evaluatedVersion) {
throw new Error(
`Unable to find Node version '${this.nodeInfo.versionSpec}' for platform ${this.osPlat} and architecture ${this.nodeInfo.arch}.`
);
}
return evaluatedVersion;
}
protected evaluateVersions(versions: string[]): string { protected evaluateVersions(versions: string[]): string {
let version = ''; let version = '';

View file

@ -310,39 +310,24 @@ export default class OfficialBuilds extends BaseDistribution {
} }
protected async downloadFromMirrorURL() { protected async downloadFromMirrorURL() {
// Fetch the available Node.js versions from the mirror
const nodeJsVersions = await this.getMirrorUrlVersions(); const nodeJsVersions = await this.getMirrorUrlVersions();
// Filter the available versions based on your criteria
const versions = this.filterVersions(nodeJsVersions); const versions = this.filterVersions(nodeJsVersions);
let evaluatedVersion; const evaluatedVersion = this.evaluateVersions(versions);
// If `checkLatest` is set, use the latest version from the mirror
if (this.nodeInfo.checkLatest) {
evaluatedVersion = await this.findMirrorVersionInDist(nodeJsVersions);
this.nodeInfo.versionSpec = evaluatedVersion; // Update versionSpec to the latest version
} else {
// Otherwise, evaluate the version from the filtered list
evaluatedVersion = this.evaluateVersions(versions);
}
// If no version is found, throw an error
if (!evaluatedVersion) { if (!evaluatedVersion) {
throw new Error( throw new Error(
`Unable to find Node version '${this.nodeInfo.versionSpec}' for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} from the provided mirror-url ${this.nodeInfo.mirrorURL}. Please check the mirror-url.` `Unable to find Node version '${this.nodeInfo.versionSpec}' for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} from the provided mirror-url ${this.nodeInfo.mirrorURL}. Please check the mirror-url`
); );
} }
// Get the tool name for downloading
const toolName = this.getNodejsMirrorURLInfo(evaluatedVersion); const toolName = this.getNodejsMirrorURLInfo(evaluatedVersion);
try { try {
// Try to download the Node.js binaries
const toolPath = await this.downloadNodejs(toolName); const toolPath = await this.downloadNodejs(toolName);
return toolPath; return toolPath;
} catch (error) { } catch (error) {
// Handle specific HTTP error (404 - Not Found)
if (error instanceof tc.HTTPError && error.httpStatusCode === 404) { if (error instanceof tc.HTTPError && error.httpStatusCode === 404) {
core.setFailed( core.setFailed(
`Node version ${this.nodeInfo.versionSpec} for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} was found but failed to download. ` + `Node version ${this.nodeInfo.versionSpec} for platform ${this.osPlat} and architecture ${this.nodeInfo.arch} was found but failed to download. ` +
@ -350,13 +335,13 @@ export default class OfficialBuilds extends BaseDistribution {
'To resolve this issue you may either fall back to the older version or try again later.' 'To resolve this issue you may either fall back to the older version or try again later.'
); );
} else { } else {
// For any other error, log the actual error message // For any other error type, you can log the error message.
core.setFailed( core.setFailed(
`An unexpected error occurred:'url might not be correct'}` `An unexpected error occurred like url might not correct`
); );
} }
throw error; // Re-throw the error after logging throw error;
} }
} }
} }