Simple CLI tool for CI dashboard

Registered by Данило Шеган

Provide a simple CLI tool which allows basic interaction with the CI dashboard (listing existing CI loops; potentially creating new ones and re-executing existing ones).

lci add <VCS URL> [file name] [class name] [--run]

Add a job to the CI server.
Config is held in some form of network accessible version control.
Config contains information about what to do and triggers (time/commit)
Suggest we support Git and Bazaar. File and class names need to be specified if there is more than one file/class in the repository. If one is missing initially we just get confused and reject the job. Later, we could be more flexible. Perhaps we could have a defined directory structure, so lib/* are put on the Python path and job/* are all run?
Doesn't run immediately unless you add --run

Once added, a job has a job name specified by a Python class hierarchy, e.g: Kernel.BuildOrigen

lci run <job name>
If you have a job that isn't running per-commit or on a time trigger, you can run it like this.

Each job gets an ID when it runs. This is globally unique, not just unique to the job.

lci status [--group group] [--job job name/ID] [--console]
Returns status of all jobs you own / all jobs in a particular group / job with a particular name. This is just a basic waiting/running/finished(OK/fail) sort of thing.

lci delete <job name>

lci get <job ID> [--console]
Downloads a tarball of all output from a run. If --console is specified, just prints the console log (user can pipe it to their favourite pager).

Blueprint information

Status:
Complete
Approver:
Данило Шеган
Priority:
Medium
Drafter:
Данило Шеган
Direction:
Approved
Assignee:
James Tunnicliffe
Definition:
Approved
Series goal:
Accepted for trunk
Implementation:
Implemented
Milestone target:
milestone icon 2013.03
Started by
Данило Шеган
Completed by
James Tunnicliffe

Related branches

Sprints

Whiteboard

Meta:
Headline: A simple CLI tool for communicating with the dashboard
Acceptance: One can list existing CI loops using a CLI tool.
Roadmap id: CARD-149

(?)

Work Items

Work items:
[dooferlad] CLI framework to take sub-commands and interact with remote server: DONE
[dooferlad] Investigate authentication libraries for use in CLI, prototype in CLI: DONE
[dooferlad] Investigate authentication libraries for use in Django/Server, prototype: DONE
[dooferlad] Set up a project for linaro-ci-tool and file a blueprint for CLI tool workitems: DONE
[dooferlad] Server framework to support REST API for commands below (without oauth): DONE
[danilo] Set up a GenericLoop class inside ci-dashboard: DONE
[dooferlad] Basic REST API to query for existing CI jobs and runs: DONE
REST API to create new job: DONE
REST API to start a run: DONE
REST API to delete a job: POSTPONED
REST API to get run output: DONE
[dooferlad] Add status command to CLI: DONE
[dooferlad] Add "add" command to CLI: DONE
[dooferlad] Add run command to CLI: DONE
[dooferlad] Add delete command to CLI: DONE
[dooferlad] Add get command to CLI: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.