mirror of
				https://kkgithub.com/actions/setup-python.git
				synced 2025-11-04 04:31:51 +08:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| da8703fb23 | |||
| accf675719 | |||
| 614aa4aa1e | |||
| 53d19faf05 | |||
| 948e5343c7 | |||
| bdd6409dc1 | 
							
								
								
									
										122
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										122
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@ -1243,6 +1243,32 @@ class SemVer {
 | 
			
		||||
module.exports = SemVer
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
/***/ 82:
 | 
			
		||||
/***/ (function(__unusedmodule, exports) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
// We use any as a valid input type
 | 
			
		||||
/* eslint-disable @typescript-eslint/no-explicit-any */
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
/**
 | 
			
		||||
 * Sanitizes an input into a string so it can be passed into issueCommand safely
 | 
			
		||||
 * @param input input to sanitize into a string
 | 
			
		||||
 */
 | 
			
		||||
function toCommandValue(input) {
 | 
			
		||||
    if (input === null || input === undefined) {
 | 
			
		||||
        return '';
 | 
			
		||||
    }
 | 
			
		||||
    else if (typeof input === 'string' || input instanceof String) {
 | 
			
		||||
        return input;
 | 
			
		||||
    }
 | 
			
		||||
    return JSON.stringify(input);
 | 
			
		||||
}
 | 
			
		||||
exports.toCommandValue = toCommandValue;
 | 
			
		||||
//# sourceMappingURL=utils.js.map
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
/***/ 87:
 | 
			
		||||
@ -1252,6 +1278,42 @@ module.exports = require("os");
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
/***/ 102:
 | 
			
		||||
/***/ (function(__unusedmodule, exports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
// For internal use, subject to change.
 | 
			
		||||
var __importStar = (this && this.__importStar) || function (mod) {
 | 
			
		||||
    if (mod && mod.__esModule) return mod;
 | 
			
		||||
    var result = {};
 | 
			
		||||
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
 | 
			
		||||
    result["default"] = mod;
 | 
			
		||||
    return result;
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
// We use any as a valid input type
 | 
			
		||||
/* eslint-disable @typescript-eslint/no-explicit-any */
 | 
			
		||||
const fs = __importStar(__webpack_require__(747));
 | 
			
		||||
const os = __importStar(__webpack_require__(87));
 | 
			
		||||
const utils_1 = __webpack_require__(82);
 | 
			
		||||
function issueCommand(command, message) {
 | 
			
		||||
    const filePath = process.env[`GITHUB_${command}`];
 | 
			
		||||
    if (!filePath) {
 | 
			
		||||
        throw new Error(`Unable to find environment variable for file command ${command}`);
 | 
			
		||||
    }
 | 
			
		||||
    if (!fs.existsSync(filePath)) {
 | 
			
		||||
        throw new Error(`Missing file at path: ${filePath}`);
 | 
			
		||||
    }
 | 
			
		||||
    fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {
 | 
			
		||||
        encoding: 'utf8'
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
exports.issueCommand = issueCommand;
 | 
			
		||||
//# sourceMappingURL=file-command.js.map
 | 
			
		||||
 | 
			
		||||
/***/ }),
 | 
			
		||||
 | 
			
		||||
/***/ 120:
 | 
			
		||||
/***/ (function(module, __unusedexports, __webpack_require__) {
 | 
			
		||||
 | 
			
		||||
@ -2422,6 +2484,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
const os = __importStar(__webpack_require__(87));
 | 
			
		||||
const utils_1 = __webpack_require__(82);
 | 
			
		||||
/**
 | 
			
		||||
 * Commands
 | 
			
		||||
 *
 | 
			
		||||
@ -2476,13 +2539,13 @@ class Command {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
function escapeData(s) {
 | 
			
		||||
    return (s || '')
 | 
			
		||||
    return utils_1.toCommandValue(s)
 | 
			
		||||
        .replace(/%/g, '%25')
 | 
			
		||||
        .replace(/\r/g, '%0D')
 | 
			
		||||
        .replace(/\n/g, '%0A');
 | 
			
		||||
}
 | 
			
		||||
function escapeProperty(s) {
 | 
			
		||||
    return (s || '')
 | 
			
		||||
    return utils_1.toCommandValue(s)
 | 
			
		||||
        .replace(/%/g, '%25')
 | 
			
		||||
        .replace(/\r/g, '%0D')
 | 
			
		||||
        .replace(/\n/g, '%0A')
 | 
			
		||||
@ -2603,6 +2666,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
const command_1 = __webpack_require__(431);
 | 
			
		||||
const file_command_1 = __webpack_require__(102);
 | 
			
		||||
const utils_1 = __webpack_require__(82);
 | 
			
		||||
const os = __importStar(__webpack_require__(87));
 | 
			
		||||
const path = __importStar(__webpack_require__(622));
 | 
			
		||||
/**
 | 
			
		||||
@ -2625,11 +2690,21 @@ var ExitCode;
 | 
			
		||||
/**
 | 
			
		||||
 * Sets env variable for this action and future actions in the job
 | 
			
		||||
 * @param name the name of the variable to set
 | 
			
		||||
 * @param val the value of the variable
 | 
			
		||||
 * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify
 | 
			
		||||
 */
 | 
			
		||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
			
		||||
function exportVariable(name, val) {
 | 
			
		||||
    process.env[name] = val;
 | 
			
		||||
    command_1.issueCommand('set-env', { name }, val);
 | 
			
		||||
    const convertedVal = utils_1.toCommandValue(val);
 | 
			
		||||
    process.env[name] = convertedVal;
 | 
			
		||||
    const filePath = process.env['GITHUB_ENV'] || '';
 | 
			
		||||
    if (filePath) {
 | 
			
		||||
        const delimiter = '_GitHubActionsFileCommandDelimeter_';
 | 
			
		||||
        const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;
 | 
			
		||||
        file_command_1.issueCommand('ENV', commandValue);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        command_1.issueCommand('set-env', { name }, convertedVal);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
exports.exportVariable = exportVariable;
 | 
			
		||||
/**
 | 
			
		||||
@ -2645,7 +2720,13 @@ exports.setSecret = setSecret;
 | 
			
		||||
 * @param inputPath
 | 
			
		||||
 */
 | 
			
		||||
function addPath(inputPath) {
 | 
			
		||||
    command_1.issueCommand('add-path', {}, inputPath);
 | 
			
		||||
    const filePath = process.env['GITHUB_PATH'] || '';
 | 
			
		||||
    if (filePath) {
 | 
			
		||||
        file_command_1.issueCommand('PATH', inputPath);
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        command_1.issueCommand('add-path', {}, inputPath);
 | 
			
		||||
    }
 | 
			
		||||
    process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
 | 
			
		||||
}
 | 
			
		||||
exports.addPath = addPath;
 | 
			
		||||
@ -2668,12 +2749,22 @@ exports.getInput = getInput;
 | 
			
		||||
 * Sets the value of an output.
 | 
			
		||||
 *
 | 
			
		||||
 * @param     name     name of the output to set
 | 
			
		||||
 * @param     value    value to store
 | 
			
		||||
 * @param     value    value to store. Non-string values will be converted to a string via JSON.stringify
 | 
			
		||||
 */
 | 
			
		||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
			
		||||
function setOutput(name, value) {
 | 
			
		||||
    command_1.issueCommand('set-output', { name }, value);
 | 
			
		||||
}
 | 
			
		||||
exports.setOutput = setOutput;
 | 
			
		||||
/**
 | 
			
		||||
 * Enables or disables the echoing of commands into stdout for the rest of the step.
 | 
			
		||||
 * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
function setCommandEcho(enabled) {
 | 
			
		||||
    command_1.issue('echo', enabled ? 'on' : 'off');
 | 
			
		||||
}
 | 
			
		||||
exports.setCommandEcho = setCommandEcho;
 | 
			
		||||
//-----------------------------------------------------------------------
 | 
			
		||||
// Results
 | 
			
		||||
//-----------------------------------------------------------------------
 | 
			
		||||
@ -2707,18 +2798,18 @@ function debug(message) {
 | 
			
		||||
exports.debug = debug;
 | 
			
		||||
/**
 | 
			
		||||
 * Adds an error issue
 | 
			
		||||
 * @param message error issue message
 | 
			
		||||
 * @param message error issue message. Errors will be converted to string via toString()
 | 
			
		||||
 */
 | 
			
		||||
function error(message) {
 | 
			
		||||
    command_1.issue('error', message);
 | 
			
		||||
    command_1.issue('error', message instanceof Error ? message.toString() : message);
 | 
			
		||||
}
 | 
			
		||||
exports.error = error;
 | 
			
		||||
/**
 | 
			
		||||
 * Adds an warning issue
 | 
			
		||||
 * @param message warning issue message
 | 
			
		||||
 * @param message warning issue message. Errors will be converted to string via toString()
 | 
			
		||||
 */
 | 
			
		||||
function warning(message) {
 | 
			
		||||
    command_1.issue('warning', message);
 | 
			
		||||
    command_1.issue('warning', message instanceof Error ? message.toString() : message);
 | 
			
		||||
}
 | 
			
		||||
exports.warning = warning;
 | 
			
		||||
/**
 | 
			
		||||
@ -2776,8 +2867,9 @@ exports.group = group;
 | 
			
		||||
 * Saves state for current action, the state can only be retrieved by this action's post job execution.
 | 
			
		||||
 *
 | 
			
		||||
 * @param     name     name of the state to store
 | 
			
		||||
 * @param     value    value to store
 | 
			
		||||
 * @param     value    value to store. Non-string values will be converted to a string via JSON.stringify
 | 
			
		||||
 */
 | 
			
		||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
 | 
			
		||||
function saveState(name, value) {
 | 
			
		||||
    command_1.issueCommand('save-state', { name }, value);
 | 
			
		||||
}
 | 
			
		||||
@ -6325,7 +6417,7 @@ function binDir(installDir) {
 | 
			
		||||
// For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
 | 
			
		||||
// We only care about the Python version, so we don't use the PyPy version for the tool cache.
 | 
			
		||||
function usePyPy(majorVersion, architecture) {
 | 
			
		||||
    const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString());
 | 
			
		||||
    const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion);
 | 
			
		||||
    let installDir = findPyPy(architecture);
 | 
			
		||||
    if (!installDir && IS_WINDOWS) {
 | 
			
		||||
        // PyPy only precompiles binaries for x86, but the architecture parameter defaults to x64.
 | 
			
		||||
@ -6421,9 +6513,9 @@ function findPythonVersion(version, architecture) {
 | 
			
		||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
			
		||||
        switch (version.toUpperCase()) {
 | 
			
		||||
            case 'PYPY2':
 | 
			
		||||
                return usePyPy(2, architecture);
 | 
			
		||||
                return usePyPy('2', architecture);
 | 
			
		||||
            case 'PYPY3':
 | 
			
		||||
                return usePyPy(3, architecture);
 | 
			
		||||
                return usePyPy('3.6', architecture);
 | 
			
		||||
            default:
 | 
			
		||||
                return yield useCpythonVersion(version, architecture);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -5,9 +5,9 @@
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/core": {
 | 
			
		||||
      "version": "1.2.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.3.tgz",
 | 
			
		||||
      "integrity": "sha512-Wp4xnyokakM45Uuj4WLUxdsa8fJjKVl1fDTsPbTEcTcuu0Nb26IPQbOtjmnfaCPGcaoPOOqId8H9NapZ8gii4w=="
 | 
			
		||||
      "version": "1.2.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz",
 | 
			
		||||
      "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA=="
 | 
			
		||||
    },
 | 
			
		||||
    "@actions/exec": {
 | 
			
		||||
      "version": "1.0.3",
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
  "author": "GitHub",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/core": "^1.2.3",
 | 
			
		||||
    "@actions/core": "^1.2.6",
 | 
			
		||||
    "semver": "^7.1.3"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
 | 
			
		||||
@ -51,8 +51,11 @@ function binDir(installDir: string): string {
 | 
			
		||||
// A particular version of PyPy may contain one or more versions of the Python interpreter.
 | 
			
		||||
// For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
 | 
			
		||||
// We only care about the Python version, so we don't use the PyPy version for the tool cache.
 | 
			
		||||
function usePyPy(majorVersion: 2 | 3, architecture: string): InstalledVersion {
 | 
			
		||||
  const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString());
 | 
			
		||||
function usePyPy(
 | 
			
		||||
  majorVersion: '2' | '3.6',
 | 
			
		||||
  architecture: string
 | 
			
		||||
): InstalledVersion {
 | 
			
		||||
  const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion);
 | 
			
		||||
  let installDir: string | null = findPyPy(architecture);
 | 
			
		||||
 | 
			
		||||
  if (!installDir && IS_WINDOWS) {
 | 
			
		||||
@ -186,9 +189,10 @@ export async function findPythonVersion(
 | 
			
		||||
): Promise<InstalledVersion> {
 | 
			
		||||
  switch (version.toUpperCase()) {
 | 
			
		||||
    case 'PYPY2':
 | 
			
		||||
      return usePyPy(2, architecture);
 | 
			
		||||
      return usePyPy('2', architecture);
 | 
			
		||||
    case 'PYPY3':
 | 
			
		||||
      return usePyPy(3, architecture);
 | 
			
		||||
      // keep pypy3 pointing to 3.6 for backward compatibility
 | 
			
		||||
      return usePyPy('3.6', architecture);
 | 
			
		||||
    default:
 | 
			
		||||
      return await useCpythonVersion(version, architecture);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user