Introduction: Being able to dynamically spin up slave containers is great. But if we want to support significant build volumes we need more than a few Docker hosts. Defining a separate Docker cloud instance for each new host is definitely not something we want to do – especially as we’d need to redefine the slave templates for each new host. A much nicer solution is combining our Docker hosts into a cluster managed by a so-called container orchestrator (or scheduler) and then define that whole cluster as one cloud instance in Jenkins.This way we can easily expand the cluster by adding new nodes into it without needing to update anything in Jenkins configuration. There are 4 leading container orchestration platforms today and they are: Kubernetes (open-sourced and maintained by Google) Docker Swarm (from Docker Inc. – the company behind Docker) Marathon (a part of the Mesos project) Nomad (from Hashicorp)…

Read more

Are you optimistic when you look into the future and try to see what it brings? Do you believe in robot apocalypse or the utopia of singularity? Do you think the world will change to the better or to the worse? Or are you just too busy fixing bugs in production and making sure all your systems are running smoothly? Ant Weiss of Otomato describing the bright future of software delivery at Jenkins User Conference Israel 2016.

Watch Ant Weiss of Otomato provide an overview of the OpenStack CI – probably one of the most advanced Jenkins-based CI infrastructures in the world.

Openstack is one of the largest OSS projects today with hundreds of commits flowing in daily. This high rate of change requires an advanced CI infrastructure. The purpose of the talk is to provide an overview of this infrastructure, explaining the role of each tool and the pipelines along which changes have to travel before they find their way into the approved Openstack codebase. Talk delivered by Anton Weiss at Openstack Day Israel 2016 : http://www.openstack-israel.org/#!agenda/cjg9 [slideshare id=62796201&doc=openstackci-160607053245]

We all love Jenkins. It’s flexible, scalable, has unbelievable community support (more than 1010 plugins available) and is very easy to get started with. No wonder Jenkins is the CI/CD server used in at least 70% of IT and R&D organisations around the globe. Once you start using Jenkins you quickly get hooked. It’s so easy to automate any development or system task, add a button and let your users push it whenever needed. And your Jenkins instance begins to grow. Very soon you have views, nested views, pipeline views, dozens of plugins for every little thing, jobs for dev, jobs for QA, jobs for project managers, an ever growing bunch of slave nodes, you name it.Everyone in the organisation is using Jenkins, everyone falls in love with it as much as you originally did. But then the day comes and your Jenkins that was so lively and fast when you installed it and ran…

Read more

One of the development teams we work with is developing in TypeScript and using tslint for code analysis. We’ve established a CD process for them which involves compiling typsecript to javascript, minifying the resulting code and deploying it to a staging server. Naturally they wanted to run tslint as a part of this flow in order to get notified on any new warnings a commit might have introduced. When running static code analysis in CD flow one wants some statistics on analysis results and a nice graphic representation of the results. All these are already implemented in the Jenkins PMD plug-in.  (We’ve already used the PMD plugin successfully for representing the OCLint analysis results we run for an iOS project we support.) So the only thing we needed was formatting the tslint output according to PMD format, which is in fact a very simple xml markup. Writing a formatter was…

Read more

Jenkins git-scm plugin provides support for various git repo browser applications, but the wonderful gitlist isn’t one of them… Still I found you can fool Jenkins into using gitlist as your repository browser. (We’ve been using gitlist on one of the ALM environments I manage and gitLab on another one. At some stage I noticed that gitLab‘s commit url is build exactly the same as a commit url in gitlist  : <gitlist_url>/<repo-name>.git/commit/<commit_hash> vs. <gitlab_url>/<repo_name(without .git extension)>/commit/<commit_hash>. Actually what jenkins git plugin does when constructing the repository browser link for gitlab is add the ‘commit/<commit_hash>’ on top of gitlab project url. And it works perfectly fine for gitlist too!) To use gitlist as your git repo browser in Jenkins: in git plugin define the following: Repository browser : gitlab URL: <your gitlist url (repo name with .git)> (eg: http://gitserver/gitlist/myRepo.git) Version: 5.4 Now for every commit in the changes list on build…

Read more

7/7