ContinuousIntegration
CI / Testing
Implemented
Project |
Kind of CI/testing |
Status |
Test results where(?) |
click-package-index |
pre-merge testing |
||
click |
run during builds |
|
|
ubuntu-download-manager |
run during builds + per-merge testing |
|
|
click-updown |
pre-merge testing |
implemented |
|
software-center-agent |
pre-merge testing |
implemented |
|
|
|
|
|
Planned
Project |
Kind of CI/testing |
Status |
click-package-index |
real-data testing run nightly |
? (planned) |
ubuntu-download-manager |
integration tests |
? (planned) |
app confinement |
integration tests |
? (planned) |
app scope |
integration tests |
? planned) |
Blocked
Project |
Status |
SDK (QtCreator) |
Tests available, but our infrastructure doesn't allow them to be run easily |
|
|
Integration tests
Step |
Project(s) |
Test number/status |
More test number/status |
Dev uses ubuntu-sdk (qtcreator) to create a .click package |
QtCreator / Click |
A |
|
The .click is uploaded to the review website |
myApps |
|
B |
Our reviewers check the .click and approve it in the website |
Click review tools |
|
|
Dev marks the .click as published in the website |
myApps |
|
|
unity-scope-click gets the list of .clicks from the click index webservice |
unity-scope-click |
C |
|
dash shows those results |
unity |
|
|
User taps on one app, unity-scope-click opens the app preview with details from webservice |
unity-scope-click |
|
|
User taps on “Install”, ubuntu-download-manager starts downloading |
unity-scope-click / ubuntu-download-manager |
|
|
Download progress is shown in a different dash preview that holds the progressbar |
unity-scope-click |
|
|
Download finishes, ubuntu-download-manager calls “pkcon install-local” |
ubuntu-download-manager / click |
D |
|
pkcon uses packagekit dbus api to talk to click pk plugin |
click / packagekit |
|
|
click does the unpacking, calls hooks to create apparmor profile and .desktop files |
click / apparmor |
|
|
unity-scope-click creates list of installed packages from .desktop files |
unity-scope-click |
|
E |
user taps on installed app, app is started with the right apparmor profile |
unity-scope-click / apparmor / upstart-app-launch |
F |
|
Test descriptions
Keep a list of app projects, check all of them out and run lp:qtcreator-plugin-ubuntu scripts on them (whenever qtcreator-plugin-ubuntu changes), generate .click packages. Validate packages.
- Importance:
- Work items+estimate:
- Determine initial list of projects (Core apps? Touch+Core apps?).
- Write a broken app(?).
Make click review tools available on Launchpad.
- Determine which CI tools let us most easily branch code, run QtC tools, then run validation scripts on generated .click tools.
- Write code to run the tests automatically. (Not very explicit work item, right?)
- Hook up with CI infrastructure.
- Open questions:
- Which other qtcreator-plugin-ubuntu scripts do we want to test?
- For which would we need QtC running?
- For which an attached device?
- Status:
B. Keep a list of .click packages. Run validation scripts on them server side (whenever scripts or click change).
- Importance:
- Work items+estimate:
- Status:
- Importance:
- Work items+estimate:
- Test-run of current review scripts across current list of approved and rejected apps.
- Reach out to app authors of approved apps to let them know of breakage, if we find any.
- Set up a list of known-good and known-failing tests.
- Write code to run the tests automatically.
- Hook up with CI infrastructure.
- Status:
D. Keep a list of .click packages (whenever relevant bits - which? - change), check if everything gets installed in the right place and generated files make sense.
- Importance:
- Work items+estimate:
- check that "click list --manifest" (as the phablet user) returns a manifest array that includes an entry for the package that was just installed, and that the "_directory" entry within that points to a directory that contains the package's contents.
- Open questions:
- Which paths does other code rely on?
- Do we have validation code for any of the generated files?
- Status:
- Importance:
- Work ite,s+estimate:
- Status:
- Open questions:
- Does autopilot help us here?
- Can we mock navigation and verify data in the scope easily?
- Importance:
- Work items+estimate:
- Status:
AppStore/Decisions/ContinuousIntegration (last edited 2013-09-30 15:58:38 by dholbach)