You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Download and set up an accurate pre-release version of Python:
@@ -114,6 +114,27 @@ steps:
114
114
- run: python my_script.py
115
115
```
116
116
117
+
Download and set up PyPy:
118
+
119
+
```yaml
120
+
jobs:
121
+
build:
122
+
runs-on: ubuntu-latest
123
+
strategy:
124
+
matrix:
125
+
python-version:
126
+
- pypy-3.6 # the latest available version of PyPy that supports Python 3.6
127
+
- pypy-3.7 # the latest available version of PyPy that supports Python 3.7
128
+
- pypy-3.7-v7.3.3 # Python 3.7 and PyPy 7.3.3
129
+
steps:
130
+
- uses: actions/checkout@v2
131
+
- uses: actions/setup-python@v2
132
+
with:
133
+
python-version: ${{ matrix.python-version }}
134
+
- run: python my_script.py
135
+
```
136
+
More details on PyPy syntax and examples of using preview / nightly versions of PyPy can be found in the [Available versions of PyPy](#available-versions-of-pypy) section.
137
+
117
138
# Getting started with Python + Actions
118
139
119
140
Check out our detailed guide on using [Python with GitHub Actions](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/using-python-with-github-actions).
@@ -129,7 +150,21 @@ Check out our detailed guide on using [Python with GitHub Actions](https://help.
129
150
- If the exact patch version doesn't matter to you, specifying just the major and minor version will get you the latest preinstalled patch version. In the previous example, the version spec `3.8` will use the `3.8.2` Python version found in the cache.
130
151
- Downloadable Python versions from GitHub Releases ([actions/python-versions](https://github.com/actions/python-versions/releases)).
131
152
- All available versions are listed in the [version-manifest.json](https://github.com/actions/python-versions/blob/main/versions-manifest.json) file.
132
-
- If there is a specific version of Python that is not available, you can open an issue here.
153
+
- If there is a specific version of Python that is not available, you can open an issue here
154
+
155
+
# Available versions of PyPy
156
+
157
+
`setup-python` is able to configure PyPy from two sources:
158
+
159
+
- Preinstalled versions of PyPy in the tools cache on GitHub-hosted runners
160
+
- For detailed information regarding the available versions of PyPy that are installed see [Supported software](https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners#supported-software).
161
+
- For the latest PyPy release, all versions of Python are cached.
162
+
- Cache is updated with a 1-2 week delay. If you specify the PyPy version as `pypy-3.6`, the cached version will be used although a newer version is available. If you need to start using the recently released version right after release, you should specify the exact PyPy version using `pypy-3.6-v7.3.3`.
163
+
164
+
- Downloadable PyPy versions from the [official PyPy site](https://downloads.python.org/pypy/).
165
+
- All available versions that we can download are listed in [versions.json](https://downloads.python.org/pypy/versions.json) file.
166
+
- PyPy < 7.3.3 are not available to install on-flight.
167
+
- If some versions are not available, you can open an issue in https://foss.heptapod.net/pypy/pypy/
133
168
134
169
# Hosted Tool Cache
135
170
@@ -155,6 +190,20 @@ You should specify only a major and minor version if you are okay with the most
155
190
- There will be a single patch version already installed on each runner for every minor version of Python that is supported.
156
191
- The patch version that will be preinstalled, will generally be the latest and every time there is a new patch released, the older version that is preinstalled will be replaced.
157
192
- Using the most recent patch version will result in a very quick setup since no downloads will be required since a locally installed version Python on the runner will be used.
193
+
194
+
# Specifying a PyPy version
195
+
The version of PyPy should be specified in the format `pypy-<python_version>[-v<pypy_version>]`.
196
+
The `<pypy_version>` parameter is optional and can be skipped. The latest version will be used in this case.
197
+
198
+
```
199
+
pypy-3.6 # the latest available version of PyPy that supports Python 3.6
200
+
pypy-3.7 # the latest available version of PyPy that supports Python 3.7
201
+
pypy-2.7 # the latest available version of PyPy that supports Python 2.7
202
+
pypy-3.7-v7.3.3 # Python 3.7 and PyPy 7.3.3
203
+
pypy-3.7-v7.x # Python 3.7 and the latest available PyPy 7.x
204
+
pypy-3.7-v7.3.3rc1 # Python 3.7 and preview version of PyPy
0 commit comments