Stephen Connolly's blog

Stephen Connolly's picture

How I Do Continuous Delivery with My Personal Jenkins Server

I suspect I am not alone in having my own personal Jenkins server. In fact I have a cloud-hosted box on which I run quite a few different services: Jenkins Jenkins build agents Nexus HAProxy with Let’s Encrypt Some personal websites etc I thought it might be interesting to explain how I have set this up to do continuous delivery for my personal websites. When I first set this up, I...
Stephen Connolly's picture

Bug-vs-Feature: The Acceptance Criteria Game

Search any issue tracker and before long you are sure to find many examples of the “Bug-vs-Feature” debate. Sometimes the debate can become quite comical, as parodied by XKCD Often times the Bug-vs-Feature debate is seen as an excuse not to do something. Well actually that’s not a bug but a feature, closing as WONTFIX. This type of thing can - quite rightly - get users very upset...
Stephen Connolly's picture

FileInputStream / FileOutputStream Considered Harmful

Ok, so you have been given an array of bytes that you have to write to a file. You’re a Java developer. You have been writing Java code for years. You got this: public void writeToFile(String fileName, byte[] content) throws IOException { try (FileOutputStream os = new FileOutputStream(fileName)) { os.write(content); } } Can you spot the bug? What about this method to read the...
Stephen Connolly's picture

Using Multi-branch Pipelines in the Apache Maven Project

This is a post about how using Jenkins and Pipeline has enabled the Apache Maven project to work faster and better. Most Java developers should have at least some awareness of the Apache Maven project . Maven is used to build a lot of Java projects. In fact the Jenkins project and most Jenkins plugins are currently built using Maven. After the release of Maven 3.3.9 in 2015, at...
Stephen Connolly's picture

Probing for Limits of Jenkins

At the end of my Jenkins World 2016 talk - “So you want to build the worlds largest Jenkins cluster” - I gave a brief demonstration of a Jenkins cluster with 100,000 concurrent builds to give people an idea of just how far Jenkins clusters can scale. My talk did not have anywhere near the budget of Sacha’s keynote… where they were able to fire up a PSE cluster of over 2000 masters...
Stephen Connolly's picture

How Big is Big

“I caught a fish this big” by Mark Hanna When we talk to Jenkins users, about half of the people we talk to will say something like: “We have a really big Jenkins instance” This is a statement that always intrigues me… quite often when we probe a little into exactly how big their Jenkins instance is, we find answers like “more than 500 jobs” and “five or ten build agents”. Now some...
Stephen Connolly's picture

CloudBees Jenkins Operations Center Enhanced Security Policy Available in 1.7.109 / 1.8.19

Just a quick post to say that we have consolidated and enhanced the security policy portion of the client master security setting enforcement provided by CloudBees Jenkins Operations Center: You can now force connected masters to mirror the CJOC configuration for: Cross Site Request Forgery protection Markup formatter settings Remoting channel (used by build agents, the Jenkins CLI...
Stephen Connolly's picture

A New Way to Do Continuous Delivery with Maven and Jenkins Pipeline

Like any build tool, Maven offers multiple ways to do things. One thing that differentiates Maven from other build tools is that Maven is opinionated. What this means is that Maven will make the preferred path the easy path. Now the question you need to ask yourself is: Does this mean that the preferred path is the best path? I'll put you out of your misery... the answer is NO. The...
Stephen Connolly's picture

Operations Center 1.6 now supports cluster-wide configuration of email and alerting

We just released some new feature for Operations Center. The first new feature is the ability to push snippets of common configuration across the client masters in your cluster. Our initial implementation provides for the two most asked for shared configuration snippets: email server details and alerting configuration. The documentation for this feature is available in the user...
Stephen Connolly's picture

The Credentials API in Jenkins

Apologies in advance, as this post is rather long and can get quite technical in part. To warm us up I will start with the real life story that inspired me to write the Credentials API in the first place. Back before Jenkins was called Jenkins (but I’m going to call it Jenkins anyway) and before CloudBees was even a glimmer of a glint in Sacha’s eye, I managed a few Jenkins servers...