CI Airline

Registered by Evan

The CI Airline is the CI team's plan for building a better workflow for landing tested software in Ubuntu.

Didier will walk us through the plan at a high level, then we'll spend the remaining time answering your questions and addressing your specific needs.

We've already done a fair amount of planning, so if you'd like to get up to speed beforehand so you can ask specific questions about the implementation, feel free to branch lp:ubuntu-ci-services-itself and read through the docs/ directory.

=== CI Airline Components ===

- Launchpad components: Merge proposals, branches, PPAs, distro archive.

- Project Manager: Contains project centric knowledge such as location of trunk names of integration tests, point of contact, etc. Also knows status of current MPs being built and a queue of MPs to process.

- Ticket System (sub-function of Project Manager): Service to create, monitor and manage ticket related activities.

- Ticket Environment Setup (now just a function of the ticket system): Creates bzr feature branches and PPAs to service a ticket.

- Tests Database (sub-function of Project Manager): Repository of tests per project. (What else?)

- Web Server: Provides human interface into the CI system.

- Branch listener: Track MPs and the trunks for the components involved in a ticket. tarmac-ish.

- PPA assigner:
Workaround LP limitations:
 * We need 2 empty PPAs for each ticket (the isolated one for the ticket’s feature and one for the mer to trunk attempt for the feature)
 * Since LP cannot fully remove a PPA (it will be in the database forever), we’ll manage a pool of PPAs that can be reused and will be cleaned when a ticket is closed.

- Landing Manager: Coordinates merges into trunk, ensures that all changes to trunk are built and tested in serial. Blocks access to a project’s trunk branch when a ticket or direct-to-trunk MP is being processed. Merges the changes on a successful build and test.

- Branch/Source Builder: Manages a build of a branch. Creates a source package from a given MP and dispatches it to a PPA for building and monitors for completion and collection of results.

- Image Builder and Store:
Create a new image by:
 * extracting the base image
 * adding the needed packages
 * repacking the image

- Integration Test Service: Performs testing given some mix of packages and PPAs, or an image and tests to run.

Blueprint information

Status:
Not started
Approver:
Evan
Priority:
Undefined
Drafter:
Canonical CI Engineering
Direction:
Needs approval
Assignee:
Canonical CI Engineering
Definition:
Discussion
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items