mirror of
				https://github.com/actions/setup-go.git
				synced 2025-10-31 16:13:43 +00:00 
			
		
		
		
	Merge 461004e4c97225a313a997efabc35fde47d587bb into c0137caad775660c0844396c52da96e560aba63d
This commit is contained in:
		
						commit
						75595e439a
					
				
							
								
								
									
										37
									
								
								.github/workflows/windows-validation.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								.github/workflows/windows-validation.yml
									
									
									
									
										vendored
									
									
								
							| @ -134,3 +134,40 @@ jobs: | ||||
|         with: | ||||
|           go-version: ${{ matrix.go }} | ||||
|           cache: ${{ matrix.cache }} | ||||
| 
 | ||||
|   go-mod-cache-and-tmp-location: | ||||
|     name: 'Validate if GOCACHE, GOMODCACHE, GOTMPDIR is set to drive D:' | ||||
|     runs-on: windows-latest | ||||
|     strategy: | ||||
|       matrix: | ||||
|         cache: [false] | ||||
|         go: [1.20.1] | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
| 
 | ||||
|       - name: 'Setup ${{ matrix.go }}, cache: ${{ matrix.cache }}' | ||||
|         uses: ./ | ||||
|         with: | ||||
|           go-version: ${{ matrix.go }} | ||||
|           cache: ${{ matrix.cache }} | ||||
| 
 | ||||
|       - name: 'Check if go mod cache and tmp location is set correctly' | ||||
|         run: | | ||||
|           go env GOCACHE | ||||
|           go env GOMODCACHE | ||||
|           go env GOTMPDIR | ||||
| 
 | ||||
|           if [ $(go env GOCACHE) != 'D:\Users\runneradmin\AppData\Local\go-build' ];then | ||||
|             echo 'go env GOCACHE should return "D:\Users\runneradmin\AppData\Local\go-build"' | ||||
|             exit 1 | ||||
|           fi | ||||
|           if [ $(go env GOMODCACHE) != 'D:\Users\runneradmin\go\pkg\mod' ];then | ||||
|             echo 'go env GOMODCACHE should return "D:\Users\runneradmin\go\pkg\mod"' | ||||
|             exit 1 | ||||
|           fi | ||||
|           if [ $(go env GOTMPDIR) != 'D:\gotmp' ];then | ||||
|             echo 'go env GOTMPDIR should return "D:\gotmp"' | ||||
|             exit 1 | ||||
|           fi | ||||
| 
 | ||||
|         shell: bash | ||||
|  | ||||
							
								
								
									
										41
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -94077,7 +94077,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.restoreCache = void 0; | ||||
| exports.setWindowsCacheDirectories = exports.restoreCache = void 0; | ||||
| const cache = __importStar(__nccwpck_require__(7799)); | ||||
| const core = __importStar(__nccwpck_require__(2186)); | ||||
| const glob = __importStar(__nccwpck_require__(8090)); | ||||
| @ -94085,6 +94085,7 @@ const path_1 = __importDefault(__nccwpck_require__(1017)); | ||||
| const fs_1 = __importDefault(__nccwpck_require__(7147)); | ||||
| const constants_1 = __nccwpck_require__(9042); | ||||
| 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 packageManagerInfo = yield (0, cache_utils_1.getPackageManagerInfo)(packageManager); | ||||
|     const platform = process.env.RUNNER_OS; | ||||
| @ -94112,6 +94113,43 @@ const restoreCache = (versionSpec, packageManager, cacheDependencyPath) => __awa | ||||
|     core.info(`Cache restored from key: ${cacheKey}`); | ||||
| }); | ||||
| exports.restoreCache = restoreCache; | ||||
| const setWindowsCacheDirectories = () => __awaiter(void 0, void 0, void 0, function* () { | ||||
|     if (os_1.default.platform() !== 'win32') | ||||
|         return; | ||||
|     if (!fs_1.default.existsSync('D:')) | ||||
|         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}`); | ||||
|     let goTmpDir = yield (0, cache_utils_1.getCommandOutput)(`go env GOTMPDIR`); | ||||
|     core.info(`GOTMPDIR: ${goTmpDir}`); | ||||
|     if (!goTmpDir || goTmpDir === '') { | ||||
|         goTmpDir = 'D:\\gotmp'; | ||||
|     } | ||||
|     goTmpDir = goTmpDir.replace('C:', 'D:').replace('c:', 'd:'); | ||||
|     if (!fs_1.default.existsSync(goTmpDir)) { | ||||
|         core.info(`${goTmpDir} does not exist. Creating`); | ||||
|         fs_1.default.mkdirSync(goTmpDir, { recursive: true }); | ||||
|     } | ||||
|     const setGoTmpOutput = yield (0, cache_utils_1.getCommandOutput)(`go env -w GOTMPDIR=${goTmpDir}`); | ||||
|     core.info(`go env -w GOTMPDIR output: ${setGoTmpOutput}`); | ||||
| }); | ||||
| exports.setWindowsCacheDirectories = setWindowsCacheDirectories; | ||||
| const findDependencyFile = (packageManager) => { | ||||
|     const dependencyFile = packageManager.dependencyFilePattern; | ||||
|     const workspace = process.env.GITHUB_WORKSPACE; | ||||
| @ -94790,6 +94828,7 @@ const os_1 = __importDefault(__nccwpck_require__(2037)); | ||||
| function run() { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             yield (0, cache_restore_1.setWindowsCacheDirectories)(); | ||||
|             //
 | ||||
|             // 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.
 | ||||
|  | ||||
| @ -4,9 +4,14 @@ import * as glob from '@actions/glob'; | ||||
| import path from 'path'; | ||||
| import fs from 'fs'; | ||||
| 
 | ||||
| import {State, Outputs} from './constants'; | ||||
| import {Outputs, State} from './constants'; | ||||
| 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 ( | ||||
|   versionSpec: string, | ||||
| @ -50,6 +55,55 @@ export const restoreCache = async ( | ||||
|   core.info(`Cache restored from key: ${cacheKey}`); | ||||
| }; | ||||
| 
 | ||||
| export const setWindowsCacheDirectories = async () => { | ||||
|   if (os.platform() !== 'win32') return; | ||||
| 
 | ||||
|   if (!fs.existsSync('D:')) 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}`); | ||||
| 
 | ||||
|   let goTmpDir = await getCommandOutput(`go env GOTMPDIR`); | ||||
|   core.info(`GOTMPDIR: ${goTmpDir}`); | ||||
|   if (!goTmpDir || goTmpDir === '') { | ||||
|     goTmpDir = 'D:\\gotmp'; | ||||
|   } | ||||
|   goTmpDir = goTmpDir.replace('C:', 'D:').replace('c:', 'd:'); | ||||
| 
 | ||||
|   if (!fs.existsSync(goTmpDir)) { | ||||
|     core.info(`${goTmpDir} does not exist. Creating`); | ||||
|     fs.mkdirSync(goTmpDir, {recursive: true}); | ||||
|   } | ||||
| 
 | ||||
|   const setGoTmpOutput = await getCommandOutput( | ||||
|     `go env -w GOTMPDIR=${goTmpDir}` | ||||
|   ); | ||||
|   core.info(`go env -w GOTMPDIR output: ${setGoTmpOutput}`); | ||||
| }; | ||||
| 
 | ||||
| const findDependencyFile = (packageManager: PackageManagerInfo) => { | ||||
|   const dependencyFile = packageManager.dependencyFilePattern; | ||||
|   const workspace = process.env.GITHUB_WORKSPACE!; | ||||
|  | ||||
| @ -3,7 +3,7 @@ import * as io from '@actions/io'; | ||||
| import * as installer from './installer'; | ||||
| import * as semver from 'semver'; | ||||
| import path from 'path'; | ||||
| import {restoreCache} from './cache-restore'; | ||||
| import {restoreCache, setWindowsCacheDirectories} from './cache-restore'; | ||||
| import {isCacheFeatureAvailable} from './cache-utils'; | ||||
| import cp from 'child_process'; | ||||
| import fs from 'fs'; | ||||
| @ -12,6 +12,7 @@ import {Architecture} from './types'; | ||||
| 
 | ||||
| export async function run() { | ||||
|   try { | ||||
|     await setWindowsCacheDirectories(); | ||||
|     //
 | ||||
|     // 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.
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user