mirror of https://github.com/actions/setup-go.git
				
				
				
			try different approach by overriding go ENV GOCACHE and GOMODCACHE vars for Windows
Signed-off-by: Anton Troshin <anton@diagrid.io>
This commit is contained in:
		
							parent
							
								
									5b1dffca1b
								
							
						
					
					
						commit
						be775566d4
					
				|  | @ -88034,7 +88034,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; |     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.restoreCache = void 0; | exports.setWindowsCacheDirectories = exports.restoreCache = void 0; | ||||||
| const cache = __importStar(__nccwpck_require__(7799)); | const cache = __importStar(__nccwpck_require__(7799)); | ||||||
| const core = __importStar(__nccwpck_require__(2186)); | const core = __importStar(__nccwpck_require__(2186)); | ||||||
| const glob = __importStar(__nccwpck_require__(8090)); | const glob = __importStar(__nccwpck_require__(8090)); | ||||||
|  | @ -88042,6 +88042,7 @@ const path_1 = __importDefault(__nccwpck_require__(1017)); | ||||||
| const fs_1 = __importDefault(__nccwpck_require__(7147)); | const fs_1 = __importDefault(__nccwpck_require__(7147)); | ||||||
| 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 os_1 = __importDefault(__nccwpck_require__(2037)); | ||||||
| const restoreCache = (versionSpec, packageManager, cacheDependencyPath) => __awaiter(void 0, void 0, void 0, function* () { | const restoreCache = (versionSpec, packageManager, cacheDependencyPath) => __awaiter(void 0, void 0, void 0, function* () { | ||||||
|     const packageManagerInfo = yield (0, cache_utils_1.getPackageManagerInfo)(packageManager); |     const packageManagerInfo = yield (0, cache_utils_1.getPackageManagerInfo)(packageManager); | ||||||
|     const platform = process.env.RUNNER_OS; |     const platform = process.env.RUNNER_OS; | ||||||
|  | @ -88069,6 +88070,29 @@ const restoreCache = (versionSpec, packageManager, cacheDependencyPath) => __awa | ||||||
|     core.info(`Cache restored from key: ${cacheKey}`); |     core.info(`Cache restored from key: ${cacheKey}`); | ||||||
| }); | }); | ||||||
| exports.restoreCache = restoreCache; | exports.restoreCache = restoreCache; | ||||||
|  | const setWindowsCacheDirectories = () => __awaiter(void 0, void 0, void 0, function* () { | ||||||
|  |     if (os_1.default.platform() !== 'win32') | ||||||
|  |         return; | ||||||
|  |     let goCache = yield (0, cache_utils_1.getCommandOutput)(`go env GOCACHE`); | ||||||
|  |     core.info(`GOCACHE: ${goCache}`); | ||||||
|  |     goCache = goCache.replace('C:', 'D:').replace('c:', 'd:'); | ||||||
|  |     if (!fs_1.default.existsSync(goCache)) { | ||||||
|  |         core.info(`${goCache} does not exist. Creating`); | ||||||
|  |         fs_1.default.mkdirSync(goCache, { recursive: true }); | ||||||
|  |     } | ||||||
|  |     const setOutput = yield (0, cache_utils_1.getCommandOutput)(`go env -w GOCACHE=${goCache}`); | ||||||
|  |     core.info(`go env -w GOCACHE output: ${setOutput}`); | ||||||
|  |     let goModCache = yield (0, cache_utils_1.getCommandOutput)(`go env GOMODCACHE`); | ||||||
|  |     core.info(`GOMODCACHE: ${goModCache}`); | ||||||
|  |     goModCache = goModCache.replace('C:', 'D:').replace('c:', 'd:'); | ||||||
|  |     if (!fs_1.default.existsSync(goModCache)) { | ||||||
|  |         core.info(`${goModCache} does not exist. Creating`); | ||||||
|  |         fs_1.default.mkdirSync(goModCache, { recursive: true }); | ||||||
|  |     } | ||||||
|  |     const setModOutput = yield (0, cache_utils_1.getCommandOutput)(`go env -w GOMODCACHE=${goModCache}`); | ||||||
|  |     core.info(`go env -w GOMODCACHE output: ${setModOutput}`); | ||||||
|  | }); | ||||||
|  | exports.setWindowsCacheDirectories = setWindowsCacheDirectories; | ||||||
| const findDependencyFile = (packageManager) => { | const findDependencyFile = (packageManager) => { | ||||||
|     const dependencyFile = packageManager.dependencyFilePattern; |     const dependencyFile = packageManager.dependencyFilePattern; | ||||||
|     const workspace = process.env.GITHUB_WORKSPACE; |     const workspace = process.env.GITHUB_WORKSPACE; | ||||||
|  | @ -88701,6 +88725,7 @@ const os_1 = __importDefault(__nccwpck_require__(2037)); | ||||||
| function run() { | function run() { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         try { |         try { | ||||||
|  |             yield (0, cache_restore_1.setWindowsCacheDirectories)(); | ||||||
|             //
 |             //
 | ||||||
|             // versionSpec is optional.  If supplied, install / use from the tool cache
 |             // versionSpec is optional.  If supplied, install / use from the tool cache
 | ||||||
|             // If not supplied then problem matchers will still be setup.  Useful for self-hosted.
 |             // If not supplied then problem matchers will still be setup.  Useful for self-hosted.
 | ||||||
|  |  | ||||||
|  | @ -4,9 +4,10 @@ import * as glob from '@actions/glob'; | ||||||
| import path from 'path'; | import path from 'path'; | ||||||
| import fs from 'fs'; | import fs from 'fs'; | ||||||
| 
 | 
 | ||||||
| import {State, Outputs} from './constants'; | import {Outputs, State} from './constants'; | ||||||
| import {PackageManagerInfo} from './package-managers'; | import {PackageManagerInfo} from './package-managers'; | ||||||
| import {getCacheDirectoryPath, getPackageManagerInfo} from './cache-utils'; | import {getCacheDirectoryPath, getCommandOutput, getPackageManagerInfo} from './cache-utils'; | ||||||
|  | import os from "os"; | ||||||
| 
 | 
 | ||||||
| export const restoreCache = async ( | export const restoreCache = async ( | ||||||
|   versionSpec: string, |   versionSpec: string, | ||||||
|  | @ -50,6 +51,34 @@ export const restoreCache = async ( | ||||||
|   core.info(`Cache restored from key: ${cacheKey}`); |   core.info(`Cache restored from key: ${cacheKey}`); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | export const setWindowsCacheDirectories = async () => { | ||||||
|  |   if (os.platform() !== 'win32') return; | ||||||
|  | 
 | ||||||
|  |   let goCache = await getCommandOutput(`go env GOCACHE`); | ||||||
|  |   core.info(`GOCACHE: ${goCache}`); | ||||||
|  |   goCache = goCache.replace('C:', 'D:').replace('c:', 'd:'); | ||||||
|  | 
 | ||||||
|  |   if (!fs.existsSync(goCache)) { | ||||||
|  |     core.info(`${goCache} does not exist. Creating`); | ||||||
|  |     fs.mkdirSync(goCache, {recursive: true}); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   const setOutput = await getCommandOutput(`go env -w GOCACHE=${goCache}`); | ||||||
|  |   core.info(`go env -w GOCACHE output: ${setOutput}`); | ||||||
|  | 
 | ||||||
|  |   let goModCache = await getCommandOutput(`go env GOMODCACHE`); | ||||||
|  |   core.info(`GOMODCACHE: ${goModCache}`); | ||||||
|  |   goModCache = goModCache.replace('C:', 'D:').replace('c:', 'd:'); | ||||||
|  | 
 | ||||||
|  |   if (!fs.existsSync(goModCache)) { | ||||||
|  |     core.info(`${goModCache} does not exist. Creating`); | ||||||
|  |     fs.mkdirSync(goModCache, {recursive: true}); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   const setModOutput = await getCommandOutput(`go env -w GOMODCACHE=${goModCache}`); | ||||||
|  |   core.info(`go env -w GOMODCACHE output: ${setModOutput}`); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| const findDependencyFile = (packageManager: PackageManagerInfo) => { | const findDependencyFile = (packageManager: PackageManagerInfo) => { | ||||||
|   const dependencyFile = packageManager.dependencyFilePattern; |   const dependencyFile = packageManager.dependencyFilePattern; | ||||||
|   const workspace = process.env.GITHUB_WORKSPACE!; |   const workspace = process.env.GITHUB_WORKSPACE!; | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ import * as io from '@actions/io'; | ||||||
| import * as installer from './installer'; | import * as installer from './installer'; | ||||||
| import * as semver from 'semver'; | import * as semver from 'semver'; | ||||||
| import path from 'path'; | import path from 'path'; | ||||||
| import {restoreCache} from './cache-restore'; | import {restoreCache, setWindowsCacheDirectories} from './cache-restore'; | ||||||
| import {isCacheFeatureAvailable} from './cache-utils'; | import {isCacheFeatureAvailable} from './cache-utils'; | ||||||
| import cp from 'child_process'; | import cp from 'child_process'; | ||||||
| import fs from 'fs'; | import fs from 'fs'; | ||||||
|  | @ -11,6 +11,7 @@ import os from 'os'; | ||||||
| 
 | 
 | ||||||
| export async function run() { | export async function run() { | ||||||
|   try { |   try { | ||||||
|  |     await setWindowsCacheDirectories(); | ||||||
|     //
 |     //
 | ||||||
|     // versionSpec is optional.  If supplied, install / use from the tool cache
 |     // versionSpec is optional.  If supplied, install / use from the tool cache
 | ||||||
|     // If not supplied then problem matchers will still be setup.  Useful for self-hosted.
 |     // If not supplied then problem matchers will still be setup.  Useful for self-hosted.
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Anton Troshin
						Anton Troshin