Simple CLI tool for CI dashboard
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/
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:
- 2013.03
- Started by
- Данило Шеган
- Completed by
- James Tunnicliffe
Related branches
Related bugs
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.