Description
Description:
At the moment the python-version
output for PyPy only includes the PyPy release version. In our workflow we use the python-version
output to calculate a custom cache key. This breaks if the output for different minor version is the same. PyPy itself uses a combination of python version and internal version to identify each release.
PyPy file name 1 | python-version output |
expected output |
---|---|---|
pypy3.11-v7.3.19-... | pypy7.3.19 | pypy3.10.16-7.3.19 |
pypy3.10-v7.3.19-... | pypy7.3.19 | pypy3.11.11-7.3.19 |
Line 99 in a26af69
It would be great if the output could be adjusted to include the python version as well. For it's own caching key, the action already uses a combine version identifier.
setup-python/src/setup-python.ts
Line 111 in a26af69
--
AFAICT this also affects graalpy
. In that case it isn't an issue though as a particular release only supports one minor python version.
Expected behavior:
The python-version
output for PyPy contains both the fully resolved python version as well as the resolved PyPy version. E.g.
`pypy${resolvedPythonVersion}-${resolvedPyPyVersion}`
Actual behavior:
'pypy' + resolvedPyPyVersion
Action version:
v5.6.0
Platform:
- Ubuntu
- macOS
- Windows
Runner type:
- Hosted
- Self-hosted
Tools version:
PyPy
Repro steps:
tests:
name: "Test ${{ matrix.python-version }}"
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "pypy-3.10", "pypy-3.11"]
runs-on: ubuntu-latest
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.6.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- run: echo "${{ steps.python.outputs.python-version }}"
- name: Restore Python venv
id: cache-venv
uses: actions/cache@v4.2.3
with:
path: venv
key: >-
${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.python-version
}}-${{ hashFiles('pyproject.toml', 'requirements_test.txt') }}
- name: Create Python venv
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
python -m venv venv
. venv/bin/activate
pip install -r requirements_test.txt
pip install .
- name: Run pytest
run: |
. venv/bin/activate
pip install . --no-deps
pytest tests/