Boosting Enterprise Productivity: Official s390x Support for GitHub Actions Runners
The developer community is actively seeking official support for linux/s390x (IBM Z / LinuxONE) within GitHub Actions, specifically for the Actions Runner Controller (ARC) and runner binaries. This crucial feature request, highlighted in a recent GitHub Community discussion, aims to significantly enhance CI/CD capabilities and overall productivity tools for software development in enterprise environments relying on mainframe systems.
The Critical Need for Native s390x Support
Organizations operating on IBM Z mainframes face a growing demand for GitHub Actions self-hosted runners that can execute natively on the s390x architecture. This is not merely a convenience but a necessity for modernizing CI/CD pipelines for critical enterprise workloads in banking, insurance, and government sectors.
- Native Application Development: Building, testing, and validating s390x-native applications requires runners that understand the architecture directly.
- Eliminating Emulation Overhead: Current workarounds involving cross-compilation or QEMU emulation are notoriously slow and prone to unreliability, hindering development velocity and increasing costs.
- Container-Native Workflows: With ARC on Kubernetes/OpenShift for s390x, enterprises can adopt ephemeral, auto-scaling runner infrastructures, mirroring the efficiency seen on amd64/arm64. This aligns with modern DevOps practices and contributes to achieving ambitious software engineering OKRs.
Current Challenges and Workarounds
Without official support, teams are forced to implement complex and often fragile workarounds:
- Custom ARC Controller Builds: Manually compiling the ARC controller for
linux/s390xfrom source. - Outdated Community Forks: Relying on community-maintained forks for s390x runner binaries, which often lag significantly behind upstream releases, posing security and compatibility risks.
- Manual Helm Overrides: Configuring Helm charts to point to custom-built images in private registries, adding operational overhead for tools for engineering managers.
A Path to Official Support
The community proposes a two-pronged approach for official integration:
Short-Term Goals
- Add
linux/s390xto the ARC controller's multi-platform container image build matrix. The controller, written in Go, and its distroless base image already support s390x, suggesting a minimal change to existing CI/CD pipelines.
Medium-Term Goals
- Publish official
linux/s390xrunner binaries inactions/runnerreleases. The underlying .NET runtime has supported s390x since .NET 8, making this technically feasible.
Evidence of Demand and Technical Feasibility
The discussion highlights strong evidence for this feature:
- A community fork (Gold-Bull/github-actions-runner) has provided experimental s390x builds since 2022, demonstrating sustained user interest.
- IBM Z / LinuxONE systems handle over 70% of the world's transaction value, and these organizations are increasingly adopting GitHub.
- Multiple enterprises are independently custom-building ARC for s390x, indicating a widespread need for consolidated, official support.
Technically, the path is clear:
- ARC Controller (Go) and its base image (distroless) both support s390x.
- The Runner (.NET) has s390x support from .NET 8+.
- Runner container hooks (Go-based) and Helm charts are architecture-agnostic.
Community Recommendations and Call to Action
To accelerate official support, the community suggests several actions:
- Escalate within GitHub: Open tracking issues in
actions/actions-runner-controllerandactions/runner, cross-linking to the discussion to capture the attention of product managers. - Offer Testing Endpoints: Organizations running OpenShift on IBM Z could offer community-maintained remote testing endpoints, significantly de-risking the maintenance burden for the GitHub team.
- Streamline Custom Builds: Until official support, teams can automate their own multi-arch upstream builds using GitHub Actions with QEMU emulation, bypassing outdated community forks. An example workflow snippet for building the ARC Controller for s390x is provided below:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: s390x
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push ARC Controller
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/s390x
push: true
tags: your-registry/actions-runner-controller:latest
This initiative represents a significant step forward in making GitHub Actions truly universal, expanding its utility as a core productivity tool for software development across diverse enterprise infrastructures. Enterprises and organizations requiring native s390x auto-scaling runners are encouraged to upvote the original discussion and share their use cases to demonstrate strong B2B demand.
