Introduction

What is the Ubuntu CI Engine?

The Ubuntu CI Engine is the implementation of the CI Airline designed to perform continuous integration (CI) of source code and binary packages under a converged workflow. The project is being implemented in multiple phases.

Phase 0

Phase 0 is the implementation of the ‘CI Core’. In the simplest terms, the Phase 0 system accepts a set of source packages and produces an Ubuntu image on which tests are executed. The results are then provided to the user via the web interface.

This is the basis on which later phases will be built. While Phase 0 only implements a small portion of the total CI Airline system, it does provide a useful system capable of performing the basic CI operations of building and testing.

Features

The essiential set of Phase 0 features include:

  • CI from Debian source packages.
  • Building of binary packages and complete images.
  • Tests are executed on the produced image.
  • Tests are defined via autopackage testing.
  • Results are archived and retrieved via a web interface.
  • A micro-service oriented architecture deployed in an OpenStack cloud environment.

Constraints

The Phase 0 implementation is constrained so that development can focus on a robust core of functionality that will be the basis for all future work.

  • Tickets are processed serially. Pending tickets are queued and executed in FIFO order.
  • The interface is limited to a command line interface (CLI) for creating tickets and a web interface for monitoring and viewing results.
  • Build and test results and logs are provided as raw artifacts.
  • Source packages are used as input.
  • Binary packages and images are built from a default series and image.
  • OpenStack cloud images are produced and used for testing.
  • Tests are limited to autopackage tests defined in the source packages.

Future Phases

The plan for future phases is yet to be determined.