diff --git a/README.md b/README.md index a7207b3..b4e91d0 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,17 @@ steps: python-version: 'pypy3.9' - run: python my_script.py ``` + +**GraalPy** +```yaml +steps: +- uses: actions/checkout@v4 +- uses: actions/setup-python@v4 + with: + python-version: 'graalpy-22.3' +- run: python my_script.py +``` + The `python-version` input is optional. If not supplied, the action will try to resolve the version from the default `.python-version` file. If the `.python-version` file doesn't exist Python or PyPy version from the PATH will be used. The default version of Python or PyPy in PATH varies between runners and can be changed unexpectedly so we recommend always setting Python version explicitly using the `python-version` or `python-version-file` inputs. The action will first check the local [tool cache](docs/advanced-usage.md#hosted-tool-cache) for a [semver](https://github.com/npm/node-semver#versions) match. If unable to find a specific version in the tool cache, the action will attempt to download a version of Python from [GitHub Releases](https://github.com/actions/python-versions/releases) and for PyPy from the official [PyPy's dist](https://downloads.python.org/pypy/). @@ -82,7 +93,7 @@ See examples of using `cache` and `cache-dependency-path` for `pipenv` and `poet - [Check latest version](docs/advanced-usage.md#check-latest-version) - [Caching packages](docs/advanced-usage.md#caching-packages) - [Outputs and environment variables](docs/advanced-usage.md#outputs-and-environment-variables) -- [Available versions of Python and PyPy](docs/advanced-usage.md#available-versions-of-python-and-pypy) +- [Available versions of Python and PyPy](advanced-usage.md#available-versions-of-python-pypy-and-graalpy) - [Hosted tool cache](docs/advanced-usage.md#hosted-tool-cache) - [Using `setup-python` with a self-hosted runner](docs/advanced-usage.md#using-setup-python-with-a-self-hosted-runner) - [Using `setup-python` on GHES](docs/advanced-usage.md#using-setup-python-on-ghes) diff --git a/docs/advanced-usage.md b/docs/advanced-usage.md index 4708325..37c3218 100644 --- a/docs/advanced-usage.md +++ b/docs/advanced-usage.md @@ -11,9 +11,10 @@ - [Outputs](advanced-usage.md#outputs) - [Environment variables](advanced-usage.md#environment-variables) - [Using update-environment flag](advanced-usage.md#using-update-environment-flag) -- [Available versions of Python and PyPy](advanced-usage.md#available-versions-of-python-and-pypy) +- [Available versions of Python and PyPy](advanced-usage.md#available-versions-of-python-pypy-and-graalpy) - [Python](advanced-usage.md#python) - [PyPy](advanced-usage.md#pypy) + - [GraalPy](advanced-usage.md#graalpy) - [Hosted tool cache](advanced-usage.md#hosted-tool-cache) - [Using `setup-python` with a self-hosted runner](advanced-usage.md#using-setup-python-with-a-self-hosted-runner) - [Windows](advanced-usage.md#windows) @@ -459,7 +460,7 @@ Such a requirement on side-effect could be because you don't want your composite update-environment: false - run: ${{ steps.cp310.outputs.python-path }} my_script.py ``` -## Available versions of Python and PyPy +## Available versions of Python, PyPy and GraalPy ### Python `setup-python` is able to configure **Python** from two sources: @@ -490,6 +491,11 @@ Such a requirement on side-effect could be because you don't want your composite - PyPy < 7.3.3 are not available to install on-flight. - If some versions are not available, you can open an issue in https://foss.heptapod.net/pypy/pypy/ +### GraalPy + + `setup-python` is able to download GraalPy versions from the [official GraalPy repository](https://github.com/oracle/graalpython). + - All available versions that we can download are listed in [releases](https://github.com/oracle/graalpython/releases). + ## Hosted tool cache GitHub hosted runners have a tool cache that comes with a few versions of Python + PyPy already installed. This tool cache helps speed up runs and tool setup by not requiring any new downloads. There is an environment variable called `RUNNER_TOOL_CACHE` on each runner that describes the location of the tool cache with Python and PyPy installed. `setup-python` works by taking a specific version of Python or PyPy from this tool cache and adding it to PATH.