Once you’re working on large-scale software projects, automation is a lifesaver, and Jenkins is a strong player in open-source automation – be it software builds, automated testing or deploying onto your servers. Naturally, it’s historically been developed with x86 infrastructure in mind, and let’s be fair, x86 is getting old. [poddingue], a hacker and a Jenkins contributor, demonstrates that Jenkins keeps up with the times, with a hardware demo stand called miniJen, that has Jenkins run on three non-x86 architectures – arm8v
(aarch64
), armv7l
and RISC-V.
There’s four SBCs of different architectures involved in this, three acting as Jenkins agents executing tasks, and one acting as a controller, all powered with a big desktop PSU from Pine64. The controller’s got a bit beefier CPU for a reason – at FOSDEM, we’ve seen it drive a separate display with a Jenkins dashboard. It’s very much a complete demo for its purpose, and definitely an eyecatcher for FOSDEM attendees passing by the desk! As a bonus, there’s also a fascinating blog post about how [poddingue] got to running Jenkins on RISC-V in particular.
Even software demonstrations get better with hardware, and this stood out no doubt! Looking to build a similar demo, or wondering how it came together? [poddingue] has blog posts on the demo’s structure, a repo with OpenSCAD files, and a trove of videos demonstrating the planning, design and setup process. As it goes with continuous integrations, we’ve generally seen hackers and Jenkins collide when it comes to build failure alerts, from rotating warning lights to stack lights to a Christmas tree; however, we’ve also seen a hacker use it to keep their firmware size under control between code changes. And, if you’re wondering what continuous integration holds for you, here’s our hacker-oriented deep dive.
This is great! however the mess of cables eliminates the coolness of this build.
hey it’s a pre-conference build, you know how these go – there must be at least one imperfect part!
Thanks a lot Arya for the article and for the comments.
That means a lot to me.
Jenkins is built in java so I don’t really see the coolness of this. Anything that can run java could run Jenkins.
You’d be surprised – check the RISC-V bringup blog post, it’s not smooth sailing! And, there’s a significant practical difference between “can run” and “there’s a demo stand at a conference showing that it runs”, which is the point of my article
The “write once run anywhere” hype from Sun marketing sounded nice. In practice, it has never been that simple.
Which instructions does x86 gcc compiler use to implement transparent portable codes?
And how do these instructions compare to arm m and a series and risc-v implementations?
16, 32 and 64-bit integer adds, for example?
X86-64 Instruction Encoding.
x64 Cheat Sheet.
ModR/M byte.
x86-64 opcode format.
x86-64 encoding.