mirror of
https://github.com/actions/setup-python.git
synced 2025-04-24 07:22:14 +00:00
fixing comments
This commit is contained in:
parent
17904c7b69
commit
0130854fbc
4 changed files with 91 additions and 43 deletions
13
.github/workflows/test-python.yml
vendored
13
.github/workflows/test-python.yml
vendored
|
@ -196,7 +196,8 @@ jobs:
|
||||||
}
|
}
|
||||||
$pythonVersion
|
$pythonVersion
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
setup-python-multiple-versions:
|
|
||||||
|
setup-python-multiple-python-versions:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
@ -207,13 +208,17 @@ jobs:
|
||||||
- name: Setup Python and check latest
|
- name: Setup Python and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: |
|
||||||
|
3.7
|
||||||
|
3.8
|
||||||
|
3.9
|
||||||
|
3.10
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: Validate version
|
- name: Validate version
|
||||||
run: |
|
run: |
|
||||||
$pythonVersion = (python --version)
|
$pythonVersion = (python --version)
|
||||||
if ("$pythonVersion" -NotMatch "${{ matrix.python-version }}"){
|
if ("$pythonVersion" -NotMatch "3.10"){
|
||||||
Write-Host "The current version is $pythonVersion; expected version is ${{ matrix.python-version }}"
|
Write-Host "The current version is $pythonVersion; expected version is 3.10"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
$pythonVersion
|
$pythonVersion
|
||||||
|
|
29
dist/setup/index.js
vendored
29
dist/setup/index.js
vendored
|
@ -66867,31 +66867,31 @@ function cacheDependencies(cache, pythonVersion) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function resolveVersionInput() {
|
function resolveVersionInput() {
|
||||||
let version = core.getMultilineInput('python-version');
|
let versions = core.getMultilineInput('python-version');
|
||||||
let versionFile = core.getInput('python-version-file');
|
let versionFile = core.getInput('python-version-file');
|
||||||
if (version.length && versionFile) {
|
if (versions.length && versionFile) {
|
||||||
core.warning('Both python-version and python-version-file inputs are specified, only python-version will be used.');
|
core.warning('Both python-version and python-version-file inputs are specified, only python-version will be used.');
|
||||||
}
|
}
|
||||||
if (version.length) {
|
if (versions.length) {
|
||||||
return version;
|
return versions;
|
||||||
}
|
}
|
||||||
if (versionFile) {
|
if (versionFile) {
|
||||||
if (!fs_1.default.existsSync(versionFile)) {
|
if (!fs_1.default.existsSync(versionFile)) {
|
||||||
throw new Error(`The specified python version file at: ${versionFile} doesn't exist.`);
|
throw new Error(`The specified python version file at: ${versionFile} doesn't exist.`);
|
||||||
}
|
}
|
||||||
version = fs_1.default.readFileSync(versionFile, 'utf8');
|
const version = fs_1.default.readFileSync(versionFile, 'utf8');
|
||||||
core.info(`Resolved ${versionFile} as ${version}`);
|
core.info(`Resolved ${versionFile} as ${version}`);
|
||||||
return version;
|
return [version];
|
||||||
}
|
}
|
||||||
utils_1.logWarning("Neither 'python-version' nor 'python-version-file' inputs were supplied. Attempting to find '.python-version' file.");
|
utils_1.logWarning("Neither 'python-version' nor 'python-version-file' inputs were supplied. Attempting to find '.python-version' file.");
|
||||||
versionFile = '.python-version';
|
versionFile = '.python-version';
|
||||||
if (fs_1.default.existsSync(versionFile)) {
|
if (fs_1.default.existsSync(versionFile)) {
|
||||||
version = fs_1.default.readFileSync(versionFile, 'utf8');
|
const version = fs_1.default.readFileSync(versionFile, 'utf8');
|
||||||
core.info(`Resolved ${versionFile} as ${version}`);
|
core.info(`Resolved ${versionFile} as ${version}`);
|
||||||
return version;
|
return [version];
|
||||||
}
|
}
|
||||||
utils_1.logWarning(`${versionFile} doesn't exist.`);
|
utils_1.logWarning(`${versionFile} doesn't exist.`);
|
||||||
return version;
|
return versions;
|
||||||
}
|
}
|
||||||
function run() {
|
function run() {
|
||||||
var _a;
|
var _a;
|
||||||
|
@ -66904,20 +66904,13 @@ function run() {
|
||||||
}
|
}
|
||||||
core.debug(`Python is expected to be installed into ${process.env['RUNNER_TOOL_CACHE']}`);
|
core.debug(`Python is expected to be installed into ${process.env['RUNNER_TOOL_CACHE']}`);
|
||||||
try {
|
try {
|
||||||
let versions;
|
const versions = resolveVersionInput();
|
||||||
const resolvedVersionInput = resolveVersionInput();
|
|
||||||
const checkLatest = core.getBooleanInput('check-latest');
|
const checkLatest = core.getBooleanInput('check-latest');
|
||||||
if (Array.isArray(resolvedVersionInput)) {
|
|
||||||
versions = resolvedVersionInput;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
versions = [resolvedVersionInput];
|
|
||||||
}
|
|
||||||
if (versions.length) {
|
if (versions.length) {
|
||||||
let pythonVersion = '';
|
let pythonVersion = '';
|
||||||
for (const version of versions) {
|
|
||||||
const arch = core.getInput('architecture') || os.arch();
|
const arch = core.getInput('architecture') || os.arch();
|
||||||
const updateEnvironment = core.getBooleanInput('update-environment');
|
const updateEnvironment = core.getBooleanInput('update-environment');
|
||||||
|
for (const version of versions) {
|
||||||
if (isPyPyVersion(version)) {
|
if (isPyPyVersion(version)) {
|
||||||
const installed = yield finderPyPy.findPyPyVersion(version, arch, updateEnvironment, checkLatest);
|
const installed = yield finderPyPy.findPyPyVersion(version, arch, updateEnvironment, checkLatest);
|
||||||
pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`;
|
pythonVersion = `${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
- [Using the python-version input](advanced-usage.md#using-the-python-version-input)
|
- [Using the python-version input](advanced-usage.md#using-the-python-version-input)
|
||||||
- [Specifying a Python version](advanced-usage.md#specifying-a-python-version)
|
- [Specifying a Python version](advanced-usage.md#specifying-a-python-version)
|
||||||
- [Specifying a PyPy version](advanced-usage.md#specifying-a-pypy-version)
|
- [Specifying a PyPy version](advanced-usage.md#specifying-a-pypy-version)
|
||||||
|
- [Specifying multiple Python and PyPy versions](advanced-usage.md#specifying-multiple-python/pypy-version)
|
||||||
- [Matrix Testing](advanced-usage.md#matrix-testing)
|
- [Matrix Testing](advanced-usage.md#matrix-testing)
|
||||||
- [Using the python-version-file input](advanced-usage.md#using-the-python-version-file-input)
|
- [Using the python-version-file input](advanced-usage.md#using-the-python-version-file-input)
|
||||||
- [Check latest version](advanced-usage.md#check-latest-version)
|
- [Check latest version](advanced-usage.md#check-latest-version)
|
||||||
|
@ -132,6 +133,62 @@ jobs:
|
||||||
```
|
```
|
||||||
More details on PyPy syntax can be found in the [Available versions of PyPy](#pypy) section.
|
More details on PyPy syntax can be found in the [Available versions of PyPy](#pypy) section.
|
||||||
|
|
||||||
|
### Specifying multiple Python/PyPy version
|
||||||
|
The python-version input can get multiple python/pypy versions. The last specified version will be used as a default one.
|
||||||
|
|
||||||
|
Download and set up multiple Python versions:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: |
|
||||||
|
3.8
|
||||||
|
3.9
|
||||||
|
3.10
|
||||||
|
- run: python my_script.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Download and set up multiple PyPy versions:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: |
|
||||||
|
pypy-3.7-v7.3.x
|
||||||
|
pypy3.9-nightly
|
||||||
|
pypy3.8
|
||||||
|
- run: python my_script.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Download and set up multiple Python/PyPy versions:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: |
|
||||||
|
3.8
|
||||||
|
3.9
|
||||||
|
pypy3.9-nightly
|
||||||
|
pypy3.8
|
||||||
|
3.10
|
||||||
|
- run: python my_script.py
|
||||||
|
```
|
||||||
|
|
||||||
### Matrix Testing
|
### Matrix Testing
|
||||||
|
|
||||||
Using `setup-python` it's possible to use [matrix syntax](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix) to install several versions of Python or PyPy:
|
Using `setup-python` it's possible to use [matrix syntax](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix) to install several versions of Python or PyPy:
|
||||||
|
|
|
@ -22,18 +22,18 @@ async function cacheDependencies(cache: string, pythonVersion: string) {
|
||||||
await cacheDistributor.restoreCache();
|
await cacheDistributor.restoreCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
function resolveVersionInput(): string | string[] {
|
function resolveVersionInput() {
|
||||||
let version: string | string[] = core.getMultilineInput('python-version');
|
let versions = core.getMultilineInput('python-version');
|
||||||
let versionFile = core.getInput('python-version-file');
|
let versionFile = core.getInput('python-version-file');
|
||||||
|
|
||||||
if (version.length && versionFile) {
|
if (versions.length && versionFile) {
|
||||||
core.warning(
|
core.warning(
|
||||||
'Both python-version and python-version-file inputs are specified, only python-version will be used.'
|
'Both python-version and python-version-file inputs are specified, only python-version will be used.'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (version.length) {
|
if (versions.length) {
|
||||||
return version;
|
return versions;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (versionFile) {
|
if (versionFile) {
|
||||||
|
@ -42,9 +42,9 @@ function resolveVersionInput(): string | string[] {
|
||||||
`The specified python version file at: ${versionFile} doesn't exist.`
|
`The specified python version file at: ${versionFile} doesn't exist.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
version = fs.readFileSync(versionFile, 'utf8');
|
const version = fs.readFileSync(versionFile, 'utf8');
|
||||||
core.info(`Resolved ${versionFile} as ${version}`);
|
core.info(`Resolved ${versionFile} as ${version}`);
|
||||||
return version;
|
return [version];
|
||||||
}
|
}
|
||||||
|
|
||||||
logWarning(
|
logWarning(
|
||||||
|
@ -52,14 +52,14 @@ function resolveVersionInput(): string | string[] {
|
||||||
);
|
);
|
||||||
versionFile = '.python-version';
|
versionFile = '.python-version';
|
||||||
if (fs.existsSync(versionFile)) {
|
if (fs.existsSync(versionFile)) {
|
||||||
version = fs.readFileSync(versionFile, 'utf8');
|
const version = fs.readFileSync(versionFile, 'utf8');
|
||||||
core.info(`Resolved ${versionFile} as ${version}`);
|
core.info(`Resolved ${versionFile} as ${version}`);
|
||||||
return version;
|
return [version];
|
||||||
}
|
}
|
||||||
|
|
||||||
logWarning(`${versionFile} doesn't exist.`);
|
logWarning(`${versionFile} doesn't exist.`);
|
||||||
|
|
||||||
return version;
|
return versions;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
|
@ -75,21 +75,14 @@ async function run() {
|
||||||
`Python is expected to be installed into ${process.env['RUNNER_TOOL_CACHE']}`
|
`Python is expected to be installed into ${process.env['RUNNER_TOOL_CACHE']}`
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
let versions: string[];
|
const versions = resolveVersionInput();
|
||||||
const resolvedVersionInput = resolveVersionInput();
|
|
||||||
const checkLatest = core.getBooleanInput('check-latest');
|
const checkLatest = core.getBooleanInput('check-latest');
|
||||||
|
|
||||||
if (Array.isArray(resolvedVersionInput)) {
|
|
||||||
versions = resolvedVersionInput as string[];
|
|
||||||
} else {
|
|
||||||
versions = [resolvedVersionInput as string];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (versions.length) {
|
if (versions.length) {
|
||||||
let pythonVersion = '';
|
let pythonVersion = '';
|
||||||
for (const version of versions) {
|
|
||||||
const arch: string = core.getInput('architecture') || os.arch();
|
const arch: string = core.getInput('architecture') || os.arch();
|
||||||
const updateEnvironment = core.getBooleanInput('update-environment');
|
const updateEnvironment = core.getBooleanInput('update-environment');
|
||||||
|
for (const version of versions) {
|
||||||
if (isPyPyVersion(version)) {
|
if (isPyPyVersion(version)) {
|
||||||
const installed = await finderPyPy.findPyPyVersion(
|
const installed = await finderPyPy.findPyPyVersion(
|
||||||
version,
|
version,
|
||||||
|
|
Loading…
Add table
Reference in a new issue