-
Notifications
You must be signed in to change notification settings - Fork 3
Extending Python CI CD on GitHub Actions for IBM Power, IBM Z and LinuxONE
As part of the v1.2 release, we’re extending native support for Python ecosystem by announcing the IBM/setup-python-pz GitHub Action on IBM Power, IBM Z, and LinuxONE runners.
With this release, we hope to enable consistent Python setup across multiple CPU architectures within GitHub Actions workflows and bridge the gap between different architectures by allowing seamless builds that integrate Python in their workflows.
Python is a core dependency for many open source and enterprise projects. Ensuring consistent Python behavior across architectures is essential for reliable CI/CD pipelines.
The IBM/setup-python-pz action enables reproducible Python environment setup on IBM platforms, making it easier to validate Python workloads beyond x86.
With this release, developers can seamlessly integrate Python-based workflows on IBM architectures with minimal changes to existing pipelines.
Developers can now configure Python versions on:
-
IBM Power (
ppc64le) -
IBM Z and LinuxONE (
s390x)
using a GitHub Action that closely aligns with the standard actions/setup-python interface.
- Validate Python projects across IBM architectures and x86 in a single workflow
- Reduce architecture-specific issues (e.g., “works on x86 only”)
- Improve confidence in cross-platform Python compatibility
IBM/setup-python-pz is a fork of the community-maintained actions/setup-python project.
Key differences:
- Adds support for IBM Power and IBM Z / LinuxONE
- Tracks upstream development where possible.
Our goal is to continue aligning with the upstream project and, where feasible, contribute changes back.
At launch, the action supports Python versions:
- Python 3.10 – 3.14
For the most up-to-date list of supported versions, see:
IBM/python-versions-pz
If you maintain a Python project and want to validate it across multiple architectures, you can start using IBM/setup-python-pz today with our GitHub Actions runners. Please ensure that you are an approved organization at IBM/actionspz/issues before you can use IBM/setup-python-pz
Read more about onboarding your organization or community to the GitHub Actions for IBM Power, IBM Z and LinuxONE service: https://community.ibm.com/community/user/blogs/mick-tarsel/2025/06/23/github-actions-power-z
The example below shows how to build and test a Python project across:
-
amd64 (x86_64) using
actions/setup-python -
IBM Power (ppc64le) and IBM Z / LinuxONE (s390x) using
IBM/setup-python-pz
name: Multi-arch Python
# Only run on branches (e.g. not tags)
on:
workflow_dispatch:
jobs:
install_python:
strategy:
matrix:
include:
- arch: s390x
runner: ubuntu-24.04-s390x
- arch: ppc64le
runner: ubuntu-24.04-ppc64le
- arch: amd64
runner: ubuntu-24.04
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup Python on ${{ matrix.arch }}
if: matrix.arch == 'amd64'
uses: actions/setup-python@v6
with:
python-version: 3.13
- name: Setup Python on ${{ matrix.arch }}
if: matrix.arch != 'amd64'
uses: IBM/setup-python-pz@v6
with:
architecture: ${{ matrix.arch }}
python-version: 3.13
- name: Verify Python
run: |
python --version
python -c "import platform; print(platform.machine())"You can refer this working example to see this action in action! :)
Our goal with this release is to help bridge the gap between x86-only CI pipelines and truly multi-architecture Python workflows. By combining actions/setup-python for amd64 and IBM/setup-python-pz for IBM Power and IBM Z / LinuxONE, we hope to make cross-platform validation a natural part of everyday CI/CD.
We encourage you to try this action in your own workflows and share your experience. Community feedback is essential to improving support, documentation, and long-term alignment with the upstream actions/setup-python project.
-
Issues & requests:
Please open an issue in theIBM/setup-python-pzrepository. -
Questions or discussions:
Please open an issue inIBM/actionspzrepository.