My PyCon-IL 2017 Slides

I’m going to be giving a talk at PyCon Israel 2017 about Jenkins and Python.

Here are the slides I will be using for that lecture:

Advertisements

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