| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 2831efe commit 8c5ea63
14 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,47 @@ | |||
| 1 | + name: Validate PyPy e2e | ||
| 2 | + on: | ||
| 3 | + push: | ||
| 4 | + branches: | ||
| 5 | + - main | ||
| 6 | + paths-ignore: | ||
| 7 | + - '**.md' | ||
| 8 | + pull_request: | ||
| 9 | + paths-ignore: | ||
| 10 | + - '**.md' | ||
| 11 | + schedule: | ||
| 12 | + - cron: 30 3 * * * | ||
| 13 | + | ||
| 14 | + jobs: | ||
| 15 | + setup-pypy: | ||
| 16 | + name: Setup PyPy ${{ matrix.pypy }} ${{ matrix.os }} | ||
| 17 | + runs-on: ${{ matrix.os }} | ||
| 18 | + strategy: | ||
| 19 | + fail-fast: false | ||
| 20 | + matrix: | ||
| 21 | + os: [macos-latest, windows-latest, ubuntu-18.04, ubuntu-20.04] | ||
| 22 | + pypy: | ||
| 23 | + - 'pypy-2.7' | ||
| 24 | + - 'pypy-3.6' | ||
| 25 | + - 'pypy-3.7' | ||
| 26 | + - 'pypy-2.7-v7.3.2' | ||
| 27 | + - 'pypy-3.6-v7.3.2' | ||
| 28 | + - 'pypy-3.7-v7.3.2' | ||
| 29 | + - 'pypy-3.6-v7.3.x' | ||
| 30 | + - 'pypy-3.7-v7.x' | ||
| 31 | + - 'pypy-3.6-v7.3.3rc1' | ||
| 32 | + - 'pypy-3.7-nightly' | ||
| 33 | + | ||
| 34 | + steps: | ||
| 35 | + - name: Checkout | ||
| 36 | + uses: actions/checkout@v2 | ||
| 37 | + | ||
| 38 | + - name: setup-python ${{ matrix.pypy }} | ||
| 39 | + uses: ./ | ||
| 40 | + with: | ||
| 41 | + python-version: ${{ matrix.pypy }} | ||
| 42 | + | ||
| 43 | + - name: PyPy and Python version | ||
| 44 | + run: python --version | ||
| 45 | + | ||
| 46 | + - name: Run simple code | ||
| 47 | + run: python -c 'import math; print(math.factorial(5))' | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - name: Validate 'setup-python' | ||
| 1 | + name: Validate Python e2e | ||
| 2 | 2 | on: | |
| 3 | 3 | push: | |
| 4 | 4 | branches: | |
@@ -9,7 +9,7 @@ on: | |||
| 9 | 9 | paths-ignore: | |
| 10 | 10 | - '**.md' | |
| 11 | 11 | schedule: | |
| 12 | - - cron: 0 0 * * * | ||
| 12 | + - cron: 30 3 * * * | ||
| 13 | 13 | ||
| 14 | 14 | jobs: | |
| 15 | 15 | default-version: | |
@@ -18,7 +18,7 @@ jobs: | |||
| 18 | 18 | strategy: | |
| 19 | 19 | fail-fast: false | |
| 20 | 20 | matrix: | |
| 21 | - os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04] | ||
| 21 | + os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04, ubuntu-20.04] | ||
| 22 | 22 | steps: | |
| 23 | 23 | - name: Checkout | |
| 24 | 24 | uses: actions/checkout@v2 | |
@@ -38,7 +38,7 @@ jobs: | |||
| 38 | 38 | strategy: | |
| 39 | 39 | fail-fast: false | |
| 40 | 40 | matrix: | |
| 41 | - os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04] | ||
| 41 | + os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04, ubuntu-20.04] | ||
| 42 | 42 | python: [3.5.4, 3.6.7, 3.7.5, 3.8.1] | |
| 43 | 43 | steps: | |
| 44 | 44 | - name: Checkout | |
@@ -68,7 +68,7 @@ jobs: | |||
| 68 | 68 | strategy: | |
| 69 | 69 | fail-fast: false | |
| 70 | 70 | matrix: | |
| 71 | - os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04] | ||
| 71 | + os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04, ubuntu-20.04] | ||
| 72 | 72 | steps: | |
| 73 | 73 | - name: Checkout | |
| 74 | 74 | uses: actions/checkout@v2 | |
@@ -91,13 +91,13 @@ jobs: | |||
| 91 | 91 | - name: Run simple code | |
| 92 | 92 | run: python -c 'import math; print(math.factorial(5))' | |
| 93 | 93 | ||
| 94 | - setup-pypy: | ||
| 94 | + setup-pypy-legacy: | ||
| 95 | 95 | name: Setup PyPy ${{ matrix.os }} | |
| 96 | 96 | runs-on: ${{ matrix.os }} | |
| 97 | 97 | strategy: | |
| 98 | 98 | fail-fast: false | |
| 99 | 99 | matrix: | |
| 100 | - os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04] | ||
| 100 | + os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04, ubuntu-20.04] | ||
| 101 | 101 | steps: | |
| 102 | 102 | - name: Checkout | |
| 103 | 103 | uses: actions/checkout@v2 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -17,6 +17,7 @@ This action sets up a Python environment for use in actions by: | |||
| 17 | 17 | - Allows for pinning to a specific patch version of Python without the worry of it ever being removed or changed. | |
| 18 | 18 | - Automatic setup and download of Python packages if using a self-hosted runner. | |
| 19 | 19 | - Support for pre-release versions of Python. | |
| 20 | + - Support for installing any version of PyPy on-flight | ||
| 20 | 21 | ||
| 21 | 22 | # Usage | |
| 22 | 23 | ||
@@ -40,7 +41,7 @@ jobs: | |||
| 40 | 41 | runs-on: ubuntu-latest | |
| 41 | 42 | strategy: | |
| 42 | 43 | matrix: | |
| 43 | - python-version: [ '2.x', '3.x', 'pypy2', 'pypy3' ] | ||
| 44 | + python-version: [ '2.x', '3.x', 'pypy-2.7', 'pypy-3.6', 'pypy-3.7' ] | ||
| 44 | 45 | name: Python ${{ matrix.python-version }} sample | |
| 45 | 46 | steps: | |
| 46 | 47 | - uses: actions/checkout@v2 | |
@@ -60,7 +61,7 @@ jobs: | |||
| 60 | 61 | strategy: | |
| 61 | 62 | matrix: | |
| 62 | 63 | os: [ubuntu-latest, macos-latest, windows-latest] | |
| 63 | - python-version: [2.7, 3.6, 3.7, 3.8, pypy2, pypy3] | ||
| 64 | + python-version: [2.7, 3.6, 3.7, 3.8, pypy-2.7, pypy-3.6] | ||
| 64 | 65 | exclude: | |
| 65 | 66 | - os: macos-latest | |
| 66 | 67 | python-version: 3.8 | |
@@ -91,7 +92,6 @@ jobs: | |||
| 91 | 92 | with: | |
| 92 | 93 | python-version: ${{ matrix.python-version }} | |
| 93 | 94 | - run: python my_script.py | |
| 94 | - | ||
| 95 | 95 | ``` | |
| 96 | 96 | ||
| 97 | 97 | 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 | ||
| 205 | + pypy-3.7-nightly # Python 3.7 and nightly PyPy | ||
| 206 | + ``` | ||
| 158 | 207 | ||
| 159 | 208 | # Using `setup-python` with a self hosted runner | |
| 160 | 209 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments