Continuous Integration
Releases 11.10 and 12.04 will have a critical focus on improving the automation testing efforts for Ubuntu.
11.10 sprint cycle automation goals
- Building the continuous integration infrastructure
- Add selected Ubuntu packages to CI process
- Add Installer (Ubiquity) tests to CI process
- Add Kernel tests to CI process
- Create process for notifying teams of test failures and process for fixing failed builds
CI Environment
Machines will be built to run Jenkins servers and slaves. The lab will be a combination of physical and virtual machines.
Configuration items to consider:
- Security realm (local, SSO, etc.)
- Roles
- Email server
- Backup plan
Package Testing
Ubuntu Engineering Teams are providing a prioritized list of packages they would like to have initially added to the CI process. Some packages lack the unit/integration tests required to ensure stable builds. Once those are identified, tests will be developed as part of the source code. Packages that require a separate testing process (ie, GUI functional testing) will be noted. The effort for building special test frameworks will be postponed to a future sprint.
Ubiquity Testing
A test pilot has been completed to show that Ubiquity can be automated from an image at startup. A framework needs to be built around the existing tests to allow easier development of new tests, maintainability (Ubiquity constantly changes), and reporting.
Kernel Testing
TBD
CI Process
We need to define some guidelines and principles so everyone understands the process.
- Requirements for adding builds
- Who gets notified per build (failed/unstable/successful)
- How to notify community of a failed package
- How failed builds get fixed in a timely manner
- Centralized reporting/results overview
12.04 sprint cycle automation goals
TBD
Encouraging Upstream CI
Brainstorm:
Add a field on LP to link to a CI server - their own or Ubuntu's Offical CI
The potential link may spark enough interest
- We could even create a process for getting upstream developers to submit their own projects for official Ubuntu CI
- ie, "Continuous Integration Team" responsible for reviewing submissions and providing feedback for improving tests