This repository is a fork of actions/setup-python, maintained by IBM to provide support for architectures not officially covered upstream. It enables GitHub Actions workflows on IBM Power (ppc64le) and IBM Z (s390x), while remaining functionally compatible with upstream for all other platforms.
- For ppc64le and s390x runners, we publish CPython tarballs in the IBM/python-versions-pz repository, and this action downloads them directly from those releases.
 - For x64 and arm64 runners, we fall back to the upstream actions/python-versions data, so you receive the same artifacts as 
actions/setup-python. - PyPy and GraalPy builds are handled exactly as upstream. If a version is not available for Power or Z, the action will report it just like the original project.
 
ℹ️ If you only require the standard Microsoft-hosted architectures, continue using actions/setup-python. Use this fork if you rely on IBM Power or IBM Z runners.
- Both upstream repositories (
actions/setup-pythonandactions/python-versions) are owned by Microsoft. Supporting Power and Z requires changes to both code and release infrastructure. - Microsoft has not accepted our pull requests to add ppc64le and s390x support, which blocks official distribution of these Python builds.
 - Hosting the artifacts ourselves requires installing the GitHub App described in the blog post “GitHub Actions for IBM architectures v1.1”. Until the upstream projects adopt that app (or similar infrastructure), we must maintain this fork to keep Power and Z runners unblocked.
 
Our goal is to stay close to upstream so that pipelines can switch between the two actions with minimal friction, while IBM works with Microsoft on a long-term solution.
All features available in actions/setup-python, including pinning versions, installing PyPy or GraalPy, enabling dependency caching, using python-version-file, and registering matchers, work the same here. The only intentional difference is the source of CPython artifacts:
| Architecture | Runtime source | 
|---|---|
| ppc64le | IBM/python-versions-pz releases | 
| s390x | IBM/python-versions-pz releases | 
| x64 | actions/python-versions (upstream) | 
| arm64 | actions/python-versions (upstream) | 
steps:
  - uses: actions/checkout@v5
  - uses: ibm/setup-pz@v6
    with:
      architecture: ppc64le
      python-version: '3.13'
  - run: python my_script.pyKey inputs (same as upstream):
python-versionorpython-version-file: Specify the CPython, PyPy, or GraalPy release you need.architecture: Set toppc64leors390xwhen running on IBM hardware. Omit this field (or usex64/arm64) to fall back to upstream artifacts.cache,cache-dependency-path: Enable dependency caching for pip, pipenv, or poetry.
See action.yml for the full list of inputs.
When targeting Power or Z architectures, the action resolves versions from IBM/python-versions-pz:
- Releases mirror upstream tags (e.g., 
3.12.6,3.13.0) and include free-threaded variants when available. - The repository contains build scripts and Dockerfiles, allowing you to reproduce or audit the binaries.
 - Issues regarding missing versions or defects in the binaries should be filed directly in that repository.
 
For x64/arm64, no configuration change is required—this fork simply calls upstream APIs and mirrors the behavior of actions/setup-python.
- We periodically rebase on upstream to incorporate new features, security fixes, and Node.js runner updates.
 - Release tags follow upstream numbering (v6.x, etc.), so workflows do not need to change their 
uses:syntax when switching between forks. - When the upstream project adopts IBM Power and IBM Z support—or when the GitHub App mentioned above is installed in those repositories—we plan to retire this fork and direct users back to the canonical action.
 
- IBM Power or IBM Z issues: Open an issue or pull request in this repository.
 - Python tarball problems (missing versions, checksum questions): Use IBM/python-versions-pz.
 - General 
setup-pythonbehavior: Consult the upstream actions/setup-python documentation to stay aligned with standard usage. 
We welcome fixes that keep this fork healthy and close to upstream. For broader changes or new features unrelated to IBM architectures, please contribute upstream first so we can stay in sync.
This fork retains the MIT License of the original project.