mirror of
				https://github.com/actions/setup-node.git
				synced 2025-11-04 05:19:11 +08:00 
			
		
		
		
	fix: add arch to cached path (#843)
* fix: add arch to cached path * fix: change from using env to os module * fix: use process.env.RUNNER_OS instead of os.platform() * fix: remove unused var
This commit is contained in:
		@@ -2,6 +2,7 @@ import * as core from '@actions/core';
 | 
				
			|||||||
import * as cache from '@actions/cache';
 | 
					import * as cache from '@actions/cache';
 | 
				
			||||||
import * as path from 'path';
 | 
					import * as path from 'path';
 | 
				
			||||||
import * as glob from '@actions/glob';
 | 
					import * as glob from '@actions/glob';
 | 
				
			||||||
 | 
					import osm from 'os';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import * as utils from '../src/cache-utils';
 | 
					import * as utils from '../src/cache-utils';
 | 
				
			||||||
import {restoreCache} from '../src/cache-restore';
 | 
					import {restoreCache} from '../src/cache-restore';
 | 
				
			||||||
@@ -12,6 +13,7 @@ describe('cache-restore', () => {
 | 
				
			|||||||
    process.env.RUNNER_OS = 'Linux';
 | 
					    process.env.RUNNER_OS = 'Linux';
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  const platform = process.env.RUNNER_OS;
 | 
					  const platform = process.env.RUNNER_OS;
 | 
				
			||||||
 | 
					  const arch = 'arm64';
 | 
				
			||||||
  const commonPath = '/some/random/path';
 | 
					  const commonPath = '/some/random/path';
 | 
				
			||||||
  const npmCachePath = `${commonPath}/npm`;
 | 
					  const npmCachePath = `${commonPath}/npm`;
 | 
				
			||||||
  const pnpmCachePath = `${commonPath}/pnpm`;
 | 
					  const pnpmCachePath = `${commonPath}/pnpm`;
 | 
				
			||||||
@@ -52,6 +54,7 @@ describe('cache-restore', () => {
 | 
				
			|||||||
  let getCommandOutputSpy: jest.SpyInstance;
 | 
					  let getCommandOutputSpy: jest.SpyInstance;
 | 
				
			||||||
  let restoreCacheSpy: jest.SpyInstance;
 | 
					  let restoreCacheSpy: jest.SpyInstance;
 | 
				
			||||||
  let hashFilesSpy: jest.SpyInstance;
 | 
					  let hashFilesSpy: jest.SpyInstance;
 | 
				
			||||||
 | 
					  let archSpy: jest.SpyInstance;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  beforeEach(() => {
 | 
					  beforeEach(() => {
 | 
				
			||||||
    // core
 | 
					    // core
 | 
				
			||||||
@@ -102,6 +105,10 @@ describe('cache-restore', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // cache-utils
 | 
					    // cache-utils
 | 
				
			||||||
    getCommandOutputSpy = jest.spyOn(utils, 'getCommandOutput');
 | 
					    getCommandOutputSpy = jest.spyOn(utils, 'getCommandOutput');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // os
 | 
				
			||||||
 | 
					    archSpy = jest.spyOn(osm, 'arch');
 | 
				
			||||||
 | 
					    archSpy.mockImplementation(() => arch);
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('Validate provided package manager', () => {
 | 
					  describe('Validate provided package manager', () => {
 | 
				
			||||||
@@ -135,7 +142,7 @@ describe('cache-restore', () => {
 | 
				
			|||||||
        await restoreCache(packageManager, '');
 | 
					        await restoreCache(packageManager, '');
 | 
				
			||||||
        expect(hashFilesSpy).toHaveBeenCalled();
 | 
					        expect(hashFilesSpy).toHaveBeenCalled();
 | 
				
			||||||
        expect(infoSpy).toHaveBeenCalledWith(
 | 
					        expect(infoSpy).toHaveBeenCalledWith(
 | 
				
			||||||
          `Cache restored from key: node-cache-${platform}-${packageManager}-${fileHash}`
 | 
					          `Cache restored from key: node-cache-${platform}-${arch}-${packageManager}-${fileHash}`
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        expect(infoSpy).not.toHaveBeenCalledWith(
 | 
					        expect(infoSpy).not.toHaveBeenCalledWith(
 | 
				
			||||||
          `${packageManager} cache is not found`
 | 
					          `${packageManager} cache is not found`
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							@@ -93303,6 +93303,7 @@ const core = __importStar(__nccwpck_require__(2186));
 | 
				
			|||||||
const glob = __importStar(__nccwpck_require__(8090));
 | 
					const glob = __importStar(__nccwpck_require__(8090));
 | 
				
			||||||
const path_1 = __importDefault(__nccwpck_require__(1017));
 | 
					const path_1 = __importDefault(__nccwpck_require__(1017));
 | 
				
			||||||
const fs_1 = __importDefault(__nccwpck_require__(7147));
 | 
					const fs_1 = __importDefault(__nccwpck_require__(7147));
 | 
				
			||||||
 | 
					const os_1 = __importDefault(__nccwpck_require__(2037));
 | 
				
			||||||
const constants_1 = __nccwpck_require__(9042);
 | 
					const constants_1 = __nccwpck_require__(9042);
 | 
				
			||||||
const cache_utils_1 = __nccwpck_require__(1678);
 | 
					const cache_utils_1 = __nccwpck_require__(1678);
 | 
				
			||||||
const restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0, void 0, void 0, function* () {
 | 
					const restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0, void 0, void 0, function* () {
 | 
				
			||||||
@@ -93311,6 +93312,7 @@ const restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0,
 | 
				
			|||||||
        throw new Error(`Caching for '${packageManager}' is not supported`);
 | 
					        throw new Error(`Caching for '${packageManager}' is not supported`);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    const platform = process.env.RUNNER_OS;
 | 
					    const platform = process.env.RUNNER_OS;
 | 
				
			||||||
 | 
					    const arch = os_1.default.arch();
 | 
				
			||||||
    const cachePaths = yield (0, cache_utils_1.getCacheDirectories)(packageManagerInfo, cacheDependencyPath);
 | 
					    const cachePaths = yield (0, cache_utils_1.getCacheDirectories)(packageManagerInfo, cacheDependencyPath);
 | 
				
			||||||
    core.saveState(constants_1.State.CachePaths, cachePaths);
 | 
					    core.saveState(constants_1.State.CachePaths, cachePaths);
 | 
				
			||||||
    const lockFilePath = cacheDependencyPath
 | 
					    const lockFilePath = cacheDependencyPath
 | 
				
			||||||
@@ -93320,7 +93322,7 @@ const restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0,
 | 
				
			|||||||
    if (!fileHash) {
 | 
					    if (!fileHash) {
 | 
				
			||||||
        throw new Error('Some specified paths were not resolved, unable to cache dependencies.');
 | 
					        throw new Error('Some specified paths were not resolved, unable to cache dependencies.');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    const keyPrefix = `node-cache-${platform}-${packageManager}`;
 | 
					    const keyPrefix = `node-cache-${platform}-${arch}-${packageManager}`;
 | 
				
			||||||
    const primaryKey = `${keyPrefix}-${fileHash}`;
 | 
					    const primaryKey = `${keyPrefix}-${fileHash}`;
 | 
				
			||||||
    core.debug(`primary key is ${primaryKey}`);
 | 
					    core.debug(`primary key is ${primaryKey}`);
 | 
				
			||||||
    core.saveState(constants_1.State.CachePrimaryKey, primaryKey);
 | 
					    core.saveState(constants_1.State.CachePrimaryKey, primaryKey);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@ import * as core from '@actions/core';
 | 
				
			|||||||
import * as glob from '@actions/glob';
 | 
					import * as glob from '@actions/glob';
 | 
				
			||||||
import path from 'path';
 | 
					import path from 'path';
 | 
				
			||||||
import fs from 'fs';
 | 
					import fs from 'fs';
 | 
				
			||||||
 | 
					import os from 'os';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {State} from './constants';
 | 
					import {State} from './constants';
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
@@ -21,6 +22,7 @@ export const restoreCache = async (
 | 
				
			|||||||
    throw new Error(`Caching for '${packageManager}' is not supported`);
 | 
					    throw new Error(`Caching for '${packageManager}' is not supported`);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  const platform = process.env.RUNNER_OS;
 | 
					  const platform = process.env.RUNNER_OS;
 | 
				
			||||||
 | 
					  const arch = os.arch();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const cachePaths = await getCacheDirectories(
 | 
					  const cachePaths = await getCacheDirectories(
 | 
				
			||||||
    packageManagerInfo,
 | 
					    packageManagerInfo,
 | 
				
			||||||
@@ -38,7 +40,7 @@ export const restoreCache = async (
 | 
				
			|||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const keyPrefix = `node-cache-${platform}-${packageManager}`;
 | 
					  const keyPrefix = `node-cache-${platform}-${arch}-${packageManager}`;
 | 
				
			||||||
  const primaryKey = `${keyPrefix}-${fileHash}`;
 | 
					  const primaryKey = `${keyPrefix}-${fileHash}`;
 | 
				
			||||||
  core.debug(`primary key is ${primaryKey}`);
 | 
					  core.debug(`primary key is ${primaryKey}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user