Improvements and Fixes for the Kernel CI jobs

Registered by Ricardo Salveti

Most of the work needed to fully enable the kernel CI is in place, but we're still not using it as our default kernel packing method. This blueprint is to cover the remaining issues and fixes we need to do to fully enable the Kernel CI jobs (jenkins, launchpad, ppa and such).

Blueprint information

Status:
Complete
Approver:
Ricardo Salveti
Priority:
Essential
Drafter:
Ricardo Salveti
Direction:
Approved
Assignee:
John Rigby
Definition:
Approved
Series goal:
Accepted for 11.11
Implementation:
Implemented
Milestone target:
milestone icon 11.12
Started by
Ricardo Salveti
Completed by
John Rigby

Related branches

Sprints

Whiteboard

[dzin, Dec 5, 2011] Broke out acceptance criteria to manageable fields.
[rsalveti, Dec 21, 2011] I believe this BP is done, but waiting feedback from jcrigby.

Headline: The resulting trees from the Kernel CI process are now usable directly for releases. All linux-linaro packages are generated from the CI process also the TI LT kernel package.

Acceptance: The packaged kernel CI process will perform the appropriate updates and publish a suitable kernel.

Details:
The packaged kernel CI process will deal with these issues:
  Automatically update to new Ubuntu sauce when it changes.
  Automatically update to new Linaro sauce when it changes.
  Automatically update to new upstream kernel when it changes.
  Only updates the abi number when necessary, downloads previous abi from binary packages in ppa instead of just incrementing the abi number every build.
  Publishes a kernel that is useable in an LP recipe for building packaged kernel debs in a ppa. We have had trouble with this part in the past but expect that a shallow kernel with no git history will work fine.

(?)

Work Items

Work items:
Separate CI script into prep and build phases. The prep phase should be kernel flavour independent: DONE
Add automatic Ubuntu sauce updating to prep script: DONE
Add automatic Linaro sauce updating to prep script: DONE
Create a new CI kernel prep job that prepares a generic kernel then uses the kernel flavour spltter script to create per flavour trees and start per flavour build jobs: DONE
Create new CI kernel build jobs that are started by the prep job: DONE
On successful build push a shallow tree to github: DONE
Create a trees on LP to mirror the shallow trees on github: DONE
Create recipes on LP to build the mirrored trees in the overlay staging ppa: DONE

This blueprint contains Public information 
Everyone can see this information.