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 path from 'path';
 | 
			
		||||
import * as glob from '@actions/glob';
 | 
			
		||||
import osm from 'os';
 | 
			
		||||
 | 
			
		||||
import * as utils from '../src/cache-utils';
 | 
			
		||||
import {restoreCache} from '../src/cache-restore';
 | 
			
		||||
@@ -12,6 +13,7 @@ describe('cache-restore', () => {
 | 
			
		||||
    process.env.RUNNER_OS = 'Linux';
 | 
			
		||||
  }
 | 
			
		||||
  const platform = process.env.RUNNER_OS;
 | 
			
		||||
  const arch = 'arm64';
 | 
			
		||||
  const commonPath = '/some/random/path';
 | 
			
		||||
  const npmCachePath = `${commonPath}/npm`;
 | 
			
		||||
  const pnpmCachePath = `${commonPath}/pnpm`;
 | 
			
		||||
@@ -52,6 +54,7 @@ describe('cache-restore', () => {
 | 
			
		||||
  let getCommandOutputSpy: jest.SpyInstance;
 | 
			
		||||
  let restoreCacheSpy: jest.SpyInstance;
 | 
			
		||||
  let hashFilesSpy: jest.SpyInstance;
 | 
			
		||||
  let archSpy: jest.SpyInstance;
 | 
			
		||||
 | 
			
		||||
  beforeEach(() => {
 | 
			
		||||
    // core
 | 
			
		||||
@@ -102,6 +105,10 @@ describe('cache-restore', () => {
 | 
			
		||||
 | 
			
		||||
    // cache-utils
 | 
			
		||||
    getCommandOutputSpy = jest.spyOn(utils, 'getCommandOutput');
 | 
			
		||||
 | 
			
		||||
    // os
 | 
			
		||||
    archSpy = jest.spyOn(osm, 'arch');
 | 
			
		||||
    archSpy.mockImplementation(() => arch);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  describe('Validate provided package manager', () => {
 | 
			
		||||
@@ -135,7 +142,7 @@ describe('cache-restore', () => {
 | 
			
		||||
        await restoreCache(packageManager, '');
 | 
			
		||||
        expect(hashFilesSpy).toHaveBeenCalled();
 | 
			
		||||
        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(
 | 
			
		||||
          `${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 path_1 = __importDefault(__nccwpck_require__(1017));
 | 
			
		||||
const fs_1 = __importDefault(__nccwpck_require__(7147));
 | 
			
		||||
const os_1 = __importDefault(__nccwpck_require__(2037));
 | 
			
		||||
const constants_1 = __nccwpck_require__(9042);
 | 
			
		||||
const cache_utils_1 = __nccwpck_require__(1678);
 | 
			
		||||
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`);
 | 
			
		||||
    }
 | 
			
		||||
    const platform = process.env.RUNNER_OS;
 | 
			
		||||
    const arch = os_1.default.arch();
 | 
			
		||||
    const cachePaths = yield (0, cache_utils_1.getCacheDirectories)(packageManagerInfo, cacheDependencyPath);
 | 
			
		||||
    core.saveState(constants_1.State.CachePaths, cachePaths);
 | 
			
		||||
    const lockFilePath = cacheDependencyPath
 | 
			
		||||
@@ -93320,7 +93322,7 @@ const restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0,
 | 
			
		||||
    if (!fileHash) {
 | 
			
		||||
        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}`;
 | 
			
		||||
    core.debug(`primary key is ${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 path from 'path';
 | 
			
		||||
import fs from 'fs';
 | 
			
		||||
import os from 'os';
 | 
			
		||||
 | 
			
		||||
import {State} from './constants';
 | 
			
		||||
import {
 | 
			
		||||
@@ -21,6 +22,7 @@ export const restoreCache = async (
 | 
			
		||||
    throw new Error(`Caching for '${packageManager}' is not supported`);
 | 
			
		||||
  }
 | 
			
		||||
  const platform = process.env.RUNNER_OS;
 | 
			
		||||
  const arch = os.arch();
 | 
			
		||||
 | 
			
		||||
  const cachePaths = await getCacheDirectories(
 | 
			
		||||
    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}`;
 | 
			
		||||
  core.debug(`primary key is ${primaryKey}`);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user