mirror of
https://github.com/actions/setup-node.git
synced 2026-03-10 07:01:46 +08:00
Compare commits
3 Commits
87f5030d75
...
714067e756
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
714067e756 | ||
|
|
89d709d423 | ||
|
|
7d1c5630d8 |
@ -46,6 +46,7 @@ describe('setup-node', () => {
|
||||
let isCacheActionAvailable: jest.SpyInstance;
|
||||
let getExecOutputSpy: jest.SpyInstance;
|
||||
let getJsonSpy: jest.SpyInstance;
|
||||
let processExitSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
// @actions/core
|
||||
@ -63,6 +64,9 @@ describe('setup-node', () => {
|
||||
archSpy = jest.spyOn(osm, 'arch');
|
||||
archSpy.mockImplementation(() => os['arch']);
|
||||
execSpy = jest.spyOn(cp, 'execSync');
|
||||
processExitSpy = jest
|
||||
.spyOn(process, 'exit')
|
||||
.mockImplementation((() => {}) as () => never);
|
||||
|
||||
// @actions/tool-cache
|
||||
findSpy = jest.spyOn(tc, 'find');
|
||||
|
||||
@ -39,6 +39,8 @@ describe('main tests', () => {
|
||||
|
||||
let setupNodeJsSpy: jest.SpyInstance;
|
||||
|
||||
let processExitSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
inputs = {};
|
||||
|
||||
@ -79,6 +81,10 @@ describe('main tests', () => {
|
||||
|
||||
setupNodeJsSpy = jest.spyOn(OfficialBuilds.prototype, 'setupNodeJs');
|
||||
setupNodeJsSpy.mockImplementation(() => {});
|
||||
|
||||
processExitSpy = jest
|
||||
.spyOn(process, 'exit')
|
||||
.mockImplementation((() => {}) as () => never);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@ -240,6 +246,12 @@ describe('main tests', () => {
|
||||
`::error::The specified node version file at: ${versionFilePath} does not exist${osm.EOL}`
|
||||
);
|
||||
});
|
||||
|
||||
it('should call process.exit() explicitly after running', async () => {
|
||||
await main.run();
|
||||
|
||||
expect(processExitSpy).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('cache on GHES', () => {
|
||||
|
||||
@ -46,6 +46,7 @@ describe('setup-node', () => {
|
||||
let isCacheActionAvailable: jest.SpyInstance;
|
||||
let getExecOutputSpy: jest.SpyInstance;
|
||||
let getJsonSpy: jest.SpyInstance;
|
||||
let processExitSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
// @actions/core
|
||||
@ -64,6 +65,9 @@ describe('setup-node', () => {
|
||||
archSpy = jest.spyOn(osm, 'arch');
|
||||
archSpy.mockImplementation(() => os['arch']);
|
||||
execSpy = jest.spyOn(cp, 'execSync');
|
||||
processExitSpy = jest
|
||||
.spyOn(process, 'exit')
|
||||
.mockImplementation((() => {}) as () => never);
|
||||
|
||||
// @actions/tool-cache
|
||||
findSpy = jest.spyOn(tc, 'find');
|
||||
|
||||
@ -46,6 +46,7 @@ describe('setup-node', () => {
|
||||
let isCacheActionAvailable: jest.SpyInstance;
|
||||
let getExecOutputSpy: jest.SpyInstance;
|
||||
let getJsonSpy: jest.SpyInstance;
|
||||
let processExitSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
// @actions/core
|
||||
@ -63,6 +64,9 @@ describe('setup-node', () => {
|
||||
archSpy = jest.spyOn(osm, 'arch');
|
||||
archSpy.mockImplementation(() => os['arch']);
|
||||
execSpy = jest.spyOn(cp, 'execSync');
|
||||
processExitSpy = jest
|
||||
.spyOn(process, 'exit')
|
||||
.mockImplementation((() => {}) as () => never);
|
||||
|
||||
// @actions/tool-cache
|
||||
findSpy = jest.spyOn(tc, 'find');
|
||||
|
||||
@ -41,6 +41,7 @@ describe('setup-node', () => {
|
||||
let isCacheActionAvailable: jest.SpyInstance;
|
||||
let getExecOutputSpy: jest.SpyInstance;
|
||||
let getJsonSpy: jest.SpyInstance;
|
||||
let processExitSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
// @actions/core
|
||||
@ -58,6 +59,9 @@ describe('setup-node', () => {
|
||||
archSpy = jest.spyOn(osm, 'arch');
|
||||
archSpy.mockImplementation(() => os['arch']);
|
||||
execSpy = jest.spyOn(cp, 'execSync');
|
||||
processExitSpy = jest
|
||||
.spyOn(process, 'exit')
|
||||
.mockImplementation((() => {}) as () => never);
|
||||
|
||||
// @actions/tool-cache
|
||||
findSpy = jest.spyOn(tc, 'find');
|
||||
|
||||
3
dist/setup/index.js
vendored
3
dist/setup/index.js
vendored
@ -99807,6 +99807,9 @@ function run() {
|
||||
catch (err) {
|
||||
core.setFailed(err.message);
|
||||
}
|
||||
// Explicit process.exit() to not wait for hanging promises,
|
||||
// see https://github.com/actions/setup-node/issues/878
|
||||
process.exit();
|
||||
});
|
||||
}
|
||||
exports.run = run;
|
||||
|
||||
13
package-lock.json
generated
13
package-lock.json
generated
@ -34,7 +34,7 @@
|
||||
"jest": "^29.7.0",
|
||||
"jest-circus": "^29.7.0",
|
||||
"jest-each": "^29.7.0",
|
||||
"prettier": "^2.8.4",
|
||||
"prettier": "^3.6.2",
|
||||
"ts-jest": "^29.4.1",
|
||||
"typescript": "^5.4.2"
|
||||
},
|
||||
@ -4962,15 +4962,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "2.8.8",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
|
||||
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"prettier": "bin-prettier.js"
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.13.0"
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
"jest": "^29.7.0",
|
||||
"jest-circus": "^29.7.0",
|
||||
"jest-each": "^29.7.0",
|
||||
"prettier": "^2.8.4",
|
||||
"prettier": "^3.6.2",
|
||||
"ts-jest": "^29.4.1",
|
||||
"typescript": "^5.4.2"
|
||||
}
|
||||
|
||||
@ -167,14 +167,12 @@ const getCacheDirectoriesFromCacheDependencyPath = async (
|
||||
packageManagerInfo: PackageManagerInfo,
|
||||
cacheDependencyPath: string
|
||||
): Promise<string[]> => {
|
||||
const projectDirectories = await getProjectDirectoriesFromCacheDependencyPath(
|
||||
cacheDependencyPath
|
||||
);
|
||||
const projectDirectories =
|
||||
await getProjectDirectoriesFromCacheDependencyPath(cacheDependencyPath);
|
||||
const cacheFoldersPaths = await Promise.all(
|
||||
projectDirectories.map(async projectDirectory => {
|
||||
const cacheFolderPath = await packageManagerInfo.getCacheFolderPath(
|
||||
projectDirectory
|
||||
);
|
||||
const cacheFolderPath =
|
||||
await packageManagerInfo.getCacheFolderPath(projectDirectory);
|
||||
core.debug(
|
||||
`${packageManagerInfo.name}'s cache folder "${cacheFolderPath}" configured for the directory "${projectDirectory}"`
|
||||
);
|
||||
|
||||
@ -93,6 +93,10 @@ export async function run() {
|
||||
} catch (err) {
|
||||
core.setFailed((err as Error).message);
|
||||
}
|
||||
|
||||
// Explicit process.exit() to not wait for hanging promises,
|
||||
// see https://github.com/actions/setup-node/issues/878
|
||||
process.exit();
|
||||
}
|
||||
|
||||
function resolveVersionInput(): string {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user