mirror of
https://github.com/actions/setup-node.git
synced 2025-04-22 17:26:27 +00:00
re-download if cached version is incorrect
This commit is contained in:
parent
5b949b50c3
commit
c5f0b687c5
3 changed files with 45 additions and 2 deletions
|
@ -205,6 +205,27 @@ describe('setup-node', () => {
|
||||||
expect(cnSpy).toHaveBeenCalledWith(`::add-path::${expPath}${osm.EOL}`);
|
expect(cnSpy).toHaveBeenCalledWith(`::add-path::${expPath}${osm.EOL}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('finds incorrect version in cache and adds it to the path', async () => {
|
||||||
|
let versionSpec = '12.16.2';
|
||||||
|
inputs['node-version'] = versionSpec;
|
||||||
|
|
||||||
|
inSpy.mockImplementation(name => inputs[name]);
|
||||||
|
getExecOutputSpy.mockImplementation(() => 'v12.0.0');
|
||||||
|
|
||||||
|
let toolPath = path.normalize('/cache/node/12.16.1/x64');
|
||||||
|
findSpy.mockImplementation(() => toolPath);
|
||||||
|
await main.run();
|
||||||
|
|
||||||
|
let expPath = path.join(toolPath, 'bin');
|
||||||
|
expect(logSpy).toHaveBeenCalledWith(
|
||||||
|
`Found v12.0.0 in cache @ ${toolPath} but it does not satisfy the requested version (${versionSpec})`
|
||||||
|
);
|
||||||
|
expect(logSpy).toHaveBeenCalledWith(
|
||||||
|
`Attempting to download ${versionSpec}...`
|
||||||
|
);
|
||||||
|
expect(cnSpy).toHaveBeenCalledWith(`::add-path::${expPath}${osm.EOL}`);
|
||||||
|
});
|
||||||
|
|
||||||
it('handles unhandled find error and reports error', async () => {
|
it('handles unhandled find error and reports error', async () => {
|
||||||
let errMsg = 'unhandled error message';
|
let errMsg = 'unhandled error message';
|
||||||
inputs['node-version'] = '12';
|
inputs['node-version'] = '12';
|
||||||
|
|
8
dist/setup/index.js
vendored
8
dist/setup/index.js
vendored
|
@ -71409,6 +71409,7 @@ const core = __importStar(__nccwpck_require__(2186));
|
||||||
const hc = __importStar(__nccwpck_require__(9925));
|
const hc = __importStar(__nccwpck_require__(9925));
|
||||||
const io = __importStar(__nccwpck_require__(7436));
|
const io = __importStar(__nccwpck_require__(7436));
|
||||||
const tc = __importStar(__nccwpck_require__(7784));
|
const tc = __importStar(__nccwpck_require__(7784));
|
||||||
|
const exec = __importStar(__nccwpck_require__(1514));
|
||||||
const path = __importStar(__nccwpck_require__(1017));
|
const path = __importStar(__nccwpck_require__(1017));
|
||||||
const semver = __importStar(__nccwpck_require__(5911));
|
const semver = __importStar(__nccwpck_require__(5911));
|
||||||
const fs = __nccwpck_require__(7147);
|
const fs = __nccwpck_require__(7147);
|
||||||
|
@ -71447,8 +71448,13 @@ function getNode(versionSpec, stable, checkLatest, auth, arch = os.arch()) {
|
||||||
// If not found in cache, download
|
// If not found in cache, download
|
||||||
if (toolPath) {
|
if (toolPath) {
|
||||||
core.info(`Found in cache @ ${toolPath}`);
|
core.info(`Found in cache @ ${toolPath}`);
|
||||||
|
const { stdout: installedVersion } = yield exec.getExecOutput('node', ['--version'], { ignoreReturnCode: true });
|
||||||
|
if (!semver.satisfies(installedVersion, versionSpec)) {
|
||||||
|
core.info(`Found ${installedVersion} in cache @ ${toolPath} but it does not satisfy the requested version (${versionSpec})`);
|
||||||
|
toolPath = '';
|
||||||
}
|
}
|
||||||
else {
|
}
|
||||||
|
if (!toolPath) {
|
||||||
core.info(`Attempting to download ${versionSpec}...`);
|
core.info(`Attempting to download ${versionSpec}...`);
|
||||||
let downloadPath = '';
|
let downloadPath = '';
|
||||||
let info = null;
|
let info = null;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import * as core from '@actions/core';
|
||||||
import * as hc from '@actions/http-client';
|
import * as hc from '@actions/http-client';
|
||||||
import * as io from '@actions/io';
|
import * as io from '@actions/io';
|
||||||
import * as tc from '@actions/tool-cache';
|
import * as tc from '@actions/tool-cache';
|
||||||
|
import * as exec from '@actions/exec';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as semver from 'semver';
|
import * as semver from 'semver';
|
||||||
import fs = require('fs');
|
import fs = require('fs');
|
||||||
|
@ -80,7 +81,22 @@ export async function getNode(
|
||||||
// If not found in cache, download
|
// If not found in cache, download
|
||||||
if (toolPath) {
|
if (toolPath) {
|
||||||
core.info(`Found in cache @ ${toolPath}`);
|
core.info(`Found in cache @ ${toolPath}`);
|
||||||
} else {
|
|
||||||
|
const {stdout: installedVersion} = await exec.getExecOutput(
|
||||||
|
'node',
|
||||||
|
['--version'],
|
||||||
|
{ignoreReturnCode: true}
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!semver.satisfies(installedVersion, versionSpec)) {
|
||||||
|
core.info(
|
||||||
|
`Found ${installedVersion} in cache @ ${toolPath} but it does not satisfy the requested version (${versionSpec})`
|
||||||
|
);
|
||||||
|
toolPath = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!toolPath) {
|
||||||
core.info(`Attempting to download ${versionSpec}...`);
|
core.info(`Attempting to download ${versionSpec}...`);
|
||||||
let downloadPath = '';
|
let downloadPath = '';
|
||||||
let info: INodeVersionInfo | null = null;
|
let info: INodeVersionInfo | null = null;
|
||||||
|
|
Loading…
Add table
Reference in a new issue