mirror of https://github.com/actions/setup-go.git
				
				
				
			Merge 461004e4c9 into faf52423ec
				
					
				
			This commit is contained in:
		
						commit
						9dd2a3e573
					
				|  | @ -134,3 +134,40 @@ jobs: | ||||||
|         with: |         with: | ||||||
|           go-version: ${{ matrix.go }} |           go-version: ${{ matrix.go }} | ||||||
|           cache: ${{ matrix.cache }} |           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 | ||||||
|  |  | ||||||
|  | @ -94077,7 +94077,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)); | ||||||
|  | @ -94085,6 +94085,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; | ||||||
|  | @ -94112,6 +94113,43 @@ 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; | ||||||
|  |     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 findDependencyFile = (packageManager) => { | ||||||
|     const dependencyFile = packageManager.dependencyFilePattern; |     const dependencyFile = packageManager.dependencyFilePattern; | ||||||
|     const workspace = process.env.GITHUB_WORKSPACE; |     const workspace = process.env.GITHUB_WORKSPACE; | ||||||
|  | @ -94794,6 +94832,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,14 @@ 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 +55,55 @@ 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; | ||||||
|  | 
 | ||||||
|  |   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 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'; | ||||||
|  | @ -12,6 +12,7 @@ import {Architecture} from './types'; | ||||||
| 
 | 
 | ||||||
| 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