Skip to main content

Hardware Interoperability with Jenkins

By September 2, 2021July 24th, 2023Blog, Project

Contributed by Mark E. Waite, CloudBees

Jenkins has over 15 years of experience running in various hardware and software environments. It initially started on Solaris, expanded to Windows and Linux, and now runs on many processors and operating systems.

Multi-layer Interoperability

The Jenkins controller launches processes on agents as it assigns tasks and monitors their completion. The most common interoperability in Jenkins is the interaction between the Jenkins controller and its agents. The controller is often running on an AMD-64 architecture with a Linux or Windows operating system, while the agents may be running Linux, Windows, Solaris, FreeBSD, OpenBSD, IBM zOS, or other more specialized operating systems like IBM System i.

Title: Jenkins Operating Systems Image right: Jenkins logo and text "Jenkins controller (Linux, Windows,...)" Images left: logos for debian, ubuntu, Red Had Enterprise Linux, Windows, Linux and text "Jenkins agents (wide variety)"

The wide variety of operating systems running Jenkins is matched by a wide range of processors. Controllers and agents can be found on AMD-64, Arm 64v8, Arm 32v6, PowerPC 64LE, s390x, SPARC, IA-64, and more. If a processor runs Java, there’s probably a Jenkins agent running somewhere that is using that processor.

Title: Jenkins Processors Image right: Jenkins logo and text "Jenkins controller and agents" Images left: processor logos, intel CORE i9 X-series, Apple M1, Raspberri Pi, Ampere Altra, Itanium, PC Power

Software Variations

Jenkins controllers and agents run on Java 8 and on Java 11. They can be installed through operating system-specific packages on CentOS, Debian, FreeBSD, OpenBSD, openSUSE, Oracle Linux, Red Hat Enterprise Linux, Solaris, SUSE Enterprise Linux, Ubuntu, and Windows. They can also be installed with Docker images for Linux and Windows and with helm charts for Kubernetes.

Recent Advances

The most recent advances in Jenkins platform support and testing have been planned on the Jenkins roadmap and coordinated through the Jenkins Platform Special Interest Group (SIG). The Jenkins project is very grateful for the generous donations of cloud computing capacity that has been provided by Amazon Web Services and Oracle Cloud. We’ve used a portion of that cloud capacity to test Arm 64 in addition to the extensive testing that is done with AMD 64 processors. Testing of IBM s390x and IBM PowerPC 64 LE has used cloud resources provided by IBM.

Recent contributions from Tim Jacomb and Damien Duportal have provided Docker images that support multiple architectures, including AMD-64, Arm 64v8, PowerPC 64LE, and s390x. Beginning with Jenkins 2.307, users can run Docker images on any of those processors.

Who Decides?

Jenkins contributors are the primary decision makers as we adopt new platforms. When a contributor volunteers their time and talent, Jenkins users reap the benefits. Contributors create the initial systems used to build and test and they perform the ongoing verification that confirms Jenkins continues to operate well.

Donor companies also play a crucial role in Jenkins interoperability. The project relies on donated equipment and computing time to develop, test, and release new versions of Jenkins.

User voices play a strong role in platform decisions. Recent discussions of Java 8 and Java 11 reaffirmed that Jenkins users want the continued flexibility of running either Java 8 or Java 11.

How to Help?

The Jenkins project loves to welcome new contributors to help with platform support and platform testing. If you use a different hardware environment and are willing to share your results with others, we’d love to have you join the Platform Special Interest Group (SIG). We’re especially interested in recent hardware developments and the operating systems that support them. Learn more at https://www.jenkins.io/sigs/platform/