mirror of
https://github.com/actions/setup-go.git
synced 2025-04-02 01:06:06 +08:00
Merge fdd38598b9245034e4bcecd29e2d8d7cb5bbdcc4 into 0aaccfd150d50ccaeb58ebd88d36e91967a5f35b
This commit is contained in:
commit
74d2a534b2
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
|
||||
|
39
dist/setup/index.js
vendored
39
dist/setup/index.js
vendored
@ -92940,7 +92940,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));
|
||||
@ -92948,6 +92948,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;
|
||||
@ -92975,6 +92976,41 @@ 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;
|
||||
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;
|
||||
@ -93587,6 +93623,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,53 @@ export const restoreCache = async (
|
||||
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}`);
|
||||
|
||||
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';
|
||||
@ -11,6 +11,7 @@ import os from 'os';
|
||||
|
||||
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