The need for speed: Coming changes in oVirt’s CI standards

porsche_race_car_kentenich09_amkoVirt’s CI standards have been in use for a while in most oVirt projects and have largely been a success.

These standards have put the control of what the CI system does in the hands of the developers without them having to learn about Jenkins and the tooling around it. The way the standards were implemented, with the “mock_runner.sh” script, also enabled developers to easily emulate the CI system on their own machines to debug and diagnose issues.

From the oVirt infra team’s point of view, the CI standards have removed the need to constantly maintain build dependencies on the Jenkins slaves and also eliminated most of the situations where jobs running on the same slave influenced one another.

The CI standards implementation we have has one shortcoming, it was not particularity fast.

Continue reading

CI tools testing lab: Making it do useful work

screenshot-from-2016-12-06-17-32-07I this post I’m going to describe how to create Zuul-compatible Jenkins jobs and Zuul pipelines to trigger them on code changes in Gerrit.

This is the sixth and final post in a series describing how I’ve used Docker to build a lab setup on my laptop to try out Zuul and check out its various features. Previously I’ve described how to install Jenkins, Gerrit, add the zuul-server and zuul-merger components, link Jenkins to Zuul and show the Zuul graphical status page.

Before we can create Jenkins jobs and Zuul pipelines, we need to create a Gerrit project for everything to work against.

Continue reading

CI tools testing lab: Integrating Jenkins and adding Zuul UI

chain-309566_640In this post I’m going to describe how I connected Jenkins to my experimental Zuul setup. I’m also going to describe how to build a container to expose the Zuul graphical UI over HTTP.

This post is the fifth in a series of posts describing how I’ve used Docker to build a lab setup on my laptop to try out Zuul and check out its various features. Previously I’ve described how to install Jenkins, Gerrit and add the zuul-server and zuul-merger components.

Zuul communicates with Jenkins by means of the Gearman Plugin.

Continue reading

CI tools testing lab: Adding Zuul Merger

zip-159043_1280zuul-merger is a component of Zuul that merges code patches together to emulate the state code will be in once those patches are merged.  This post describes how I’ve ran it in a Docker container as part of a lab setup.

This post is the fourth in a series of posts describing how I’ve used Docker to build a lab setup on my laptop to try out Zuul and check out its various features. Previously I’ve described how to install Jenkins, Gerrit and add zuul-server.

To have a useful zuul-merger service, we need to run two services – zuul-merger itself, and an HTTP server to make the code built by zuul-merger available to Jenkins. But first, we need to write a configuration file.

Continue reading

CI tools testing lab: Setting up Zuul Server

In this post I’m going to describe the various components of Zuul, and how to run zuul-server in a Docker container  in a lab setup.

This post is the third in a series of posts describing how I’ve used Docker to build a lab setup on my laptop to try out Zuul and check out its various features. Previously I’ve written about how I’ve started Jenkins and Gerrit to have the necessary services for Zuul to work against.

In order to gain a deep understanding of Zuul and prepare fur running it in production, I came up with a rather complex container layout . If you just want to see what Zuul looks like you can get a single container with everything (including Jenkins and Gerrit) here.

A fully functional Zuul system consists of several components:

Continue reading

CI tools testing lab: Adding Gerrit

indexIn this post I’m going to describe how I quickly brought up Gerrit using Docker in a lab setup, and integrated it with Jenkins.

This post is the second in a series of posts describing how I’ve used Docker to build a lab setup on my laptop to try out Zuul and check out its various features.

Please see the previous post for an explanation of my goals, choice of tools and work done previously.

Since I’m focused on testing Zuul, I did not want to spend too much time setting up Gerrit. Instead I looked for a ready made container image that I could quickly bring up.

Continue reading

CI tools testing lab: Initial setup with Jenkins

226px-jenkins_logo-svg Gerrit, Jenkins and the Jenkins Gerrit Trigger Plugin make for a relatively easy way to setup an automated code review system. Using these components, you can have Jenkins run automates tests on code while it is being reviewed in Gerrit.

But as projects grow in complexity and amount of developers, some shortcomings of of this system become apparent as the reviewed code being tested in Jenkins stops reflecting the way it will actually look when merged into the main development branch. This is an issue we came across on oVirt’s CI system.

Looking for a solution, we found Zuul – a tool developed by the OpenStack community when they faced similar issues.

This post is a first in a series of posts describing how I’ve used Docker to build a lab setup on my laptop to try out Zuul and check out its various features.

Continue reading

For our profession to grow and mature, we must learn the story of Grace Hopper

Ada LovelaceWorking with computers, be it system administration, or software development, as a profession, is a young one. As such, it has many ailments of youth: there is a tendency to lose track of a proper work/life balance, there is rampant professional burnout, there is career euthanasia.

One of the most striking ailments of the computing profession is the lack gender diversity. I have no doubt that having more women practice this profession will benefit it greatly and enhance its contribution to humanity. The few women in this profession, I’ve had the pleasure of meeting in my career, were, with no exception, remarkable and brilliant. I believe improving gender diversity will go a long way in tending other ailments of the profession I’ve mentioned.

So what can we, as veteran practitioners of the computing profession, charged with educating the next generation of practitioners, do to improve sexual diversity on our profession? We can start be telling young people that some of the most important tricks of the trade were dreamed up by woman. We can tell them the story of Grace Hopper.