This commit is contained in:
Kazuhiro Masuda 2025-04-21 00:53:22 +09:00 committed by GitHub
commit fea8af0911
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 56 additions and 4 deletions

View file

@ -505,3 +505,30 @@ jobs:
} }
$pythonVersion $pythonVersion
shell: pwsh shell: pwsh
setup-python-version-required:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
[
macos-latest,
windows-latest,
ubuntu-22.04,
ubuntu-22.04-arm,
ubuntu-24.04-arm,
ubuntu-latest,
macos-13
]
steps:
- uses: actions/checkout@v4
- name: Setup Python
id: setup-python
uses: ./
env:
PYTHON_VERSION_REQUIRED: true
continue-on-error: true
- name: Validate failure
if: steps.setup-python.outcome != 'failure'
run: exit 1

7
dist/setup/index.js vendored
View file

@ -97729,8 +97729,15 @@ function run() {
} }
} }
else { else {
const trueValue = ['true', 'True', 'TRUE'];
const pythonVersionRequired = process.env['PYTHON_VERSION_REQUIRED'] || '';
if (!trueValue.includes(pythonVersionRequired)) {
core.warning('The `python-version` input is not set. The version of Python currently in `PATH` will be used.'); core.warning('The `python-version` input is not set. The version of Python currently in `PATH` will be used.');
} }
else {
throw new Error('The `python-version` input is required.');
}
}
const matchersPath = path.join(__dirname, '../..', '.github'); const matchersPath = path.join(__dirname, '../..', '.github');
core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`); core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`);
} }

View file

@ -138,6 +138,16 @@ steps:
``` ```
Please refer to the [Advanced range syntax section](https://github.com/npm/node-semver#advanced-range-syntax) of the [semver](https://github.com/npm/node-semver) to check other available range syntaxes. Please refer to the [Advanced range syntax section](https://github.com/npm/node-semver#advanced-range-syntax) of the [semver](https://github.com/npm/node-semver) to check other available range syntaxes.
If you want to make an error when unspecified, set `PYTHON_VERSION_REQUIRED: true` to env.
```yaml
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
env:
PYTHON_VERSION_REQUIRED: true
# the action fail with error.
```
### Specifying a PyPy version ### Specifying a PyPy version
The version of PyPy should be specified in the format `pypy<python_version>[-v<pypy_version>]` or `pypy-<python_version>[-v<pypy_version>]`. The version of PyPy should be specified in the format `pypy<python_version>[-v<pypy_version>]` or `pypy-<python_version>[-v<pypy_version>]`.
The `-v<pypy_version>` parameter is optional and can be skipped. The latest PyPy version will be used in this case. The `-v<pypy_version>` parameter is optional and can be skipped. The latest PyPy version will be used in this case.

View file

@ -146,9 +146,17 @@ async function run() {
await cacheDependencies(cache, pythonVersion); await cacheDependencies(cache, pythonVersion);
} }
} else { } else {
const trueValue = ['true', 'True', 'TRUE'];
const pythonVersionRequired = process.env['PYTHON_VERSION_REQUIRED'] || '';
if(!trueValue.includes(pythonVersionRequired)) {
core.warning( core.warning(
'The `python-version` input is not set. The version of Python currently in `PATH` will be used.' 'The `python-version` input is not set. The version of Python currently in `PATH` will be used.'
); );
} else {
throw new Error(
'The `python-version` input is required.'
);
}
} }
const matchersPath = path.join(__dirname, '../..', '.github'); const matchersPath = path.join(__dirname, '../..', '.github');
core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`); core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`);