Skip to content

Extending Python CI CD on GitHub Actions for IBM Power, IBM Z and LinuxONE

Anup Kodlekere edited this page Jan 28, 2026 · 2 revisions

Native Python Support for IBM/setup-python-pz in v1.2

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.

Overview

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.

What’s Included

Multi-Architecture Python Setup

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.

CI Parity Across Architectures

  • 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

Relationship to actions/setup-python

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.

Supported Python Versions

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

Getting Started

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

Example: Multi-Architecture GitHub Actions Workflow

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! :)

Final Notes and Community Feedback

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.