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.
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.
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/