Increasing developer productivity with simple Jenkins Pipelines

Jenkins Pipelines

At Galleon.PH I made sure to document all our development processes so anyone on our remote team can learn how we do our work, but not only that, it makes for consistent repeatable processes and lowers cognitive load when you can offload a process into a document. We found huge gains by automating a couple of regular processes using Jenkins Pipelines.

First we went from releasing once a day to many times per day by automating our release branch creation process. There is an excellent blog post on that by our Senior Engineer Ted Mathew Dela Cruz: Plumbing the Jenkins Pipeline - Automating the Creation of Release Pull Requests in Galleon.PH .

It was a simple process but a tedious one and by automating it into a Jenkins script, no one on the team had to think about how to do it anymore. It was automatically done in seconds after a PR was approved on GitHub, a release was instantly created ready to be released.

The next step of actually tagging the release, updating the changelog and merging it into our production was still a manual process, but we have now automated that using a Jenkins Pipeline again.

The whole guide for this is and Jenkinsfile is availabe on the GitHub Repo here.

Galleon.PH Jenkins Pipelines

This was again several small steps that could be run from any engineers CLI, but as we had many repositories and different levels of engineers, making sure everyone followed this exact process every time was a chore within itself. In bigger organizations you have a position for this even called Release Engineering. By automating it we got ourselves 1 step closer to 1 click deploys. The last part would be a deploy and rollback pipeline or command, but that is for another day.