It is a no surprise that enterprises and cloud service providers continue to go cloud-native at a rapid pace and DevOps, specifically, Continuous Integration (CI) and Continuous Delivery (CD) tools play a key role in delivering high-quality innovative software faster to their end-users. Arm is gaining significant momentum in edge-to-cloud software development applications and views CI/CD tools support as one of the foundational pillars to create a robust Arm software ecosystem by offering developers a frictionless environment.
In this blog, we are specifically going to focus on Jenkins, a popular Java based open source CI/CD tool used by software developers to build, test and deploy code. The goal of this blog post is to:
This is NOT a technical blog on how to use Jenkins or what CI/CD is. Plenty of excellent online resources exist covering these topics.
Since Jenkins is written in Java programming language for which Arm has a robust support, installing and using Jenkins on Arm based machines is straightforward. The following table captures some of the major open source projects using Jenkins CI supporting multi-architecture with links to Jenkins Arm slaves running the build and test jobs:
Projects
Application Domain
Jenkins CI Arm Slaves
Kata-containers
Containerization/Virtualization
Arm01, Arm02
Bigtop
Big Data
Akraino
Networking Edge Stack
FD.io/VPP
Networking Data Plane
AdoptOpenJDK
Java Language Ecosystem
OpenHPC
Building Blocks for HPC Linux Cluster
Arm Slaves
Figure 1 Jenkins Master Slave Setup for CI Build Jobs
Some of the above projects such as FD.io, AdoptOpenJDK and OpenHPC are part of the WorksOnArm initiative - a Packet-Arm partnership to create awareness and drive adoption of Arm hardware within the data center by providing hardware and software infrastructure including CI/CD tools. A more detailed list of WorksOnArm projects using Jenkins can be viewed on the WorksOnArm Github page.
We would also like to point out some interesting community work that is happening around multi-arch support for Jenkins:
To summarize, there are couple of different ways to run Jenkins on Arm hardware either through regular download and install or through Docker multi-arch images. There are no technical barriers for deploying Jenkins CI on Arm as we have now seen several open source projects today that are confidently running Jenkins CI natively on Arm machines building and testing code for various software frameworks. We expect the multi-arch support for Jenkins to continue to mature as more and more developers adopt different kind of hardware architectures for their next cloud-native projects!
Please continue using Jenkins CI on Arm (Master/Slave) if that's the CI software your project is using today and watch out for the more Jenkins community support updates for Arm architecture as highlighted above.