diff options
| author | bozo.kopic <bozo.kopic@gmail.com> | 2017-07-02 02:45:51 +0200 |
|---|---|---|
| committer | bozo.kopic <bozo.kopic@gmail.com> | 2017-07-02 02:45:51 +0200 |
| commit | c75e05b2fcbd08ec77a2ac85837f9f58829a44f6 (patch) | |
| tree | 446e9f371f0847b78832a8ff5594c56e6c891d7b /README.rst | |
| parent | 268bb2951c9026e8935c0a99d188416422351a0e (diff) | |
build environment and basic folder structure
Diffstat (limited to 'README.rst')
| -rw-r--r-- | README.rst | 75 |
1 files changed, 75 insertions, 0 deletions
@@ -0,0 +1,75 @@ +Hatter +====== + +Hatter is continuous integration server. It provides isolated execution +environments, for running automated actions, as virtual machines managed by +libvirt. + +Key features: + + * automated projects based on git repositories + * virtual machines as execution runners + * per project configuration as YAML file inside project's repository + * web based control and monitoring interface + + +Runtime requirements +-------------------- + +* python >=3.6 + +Additional required python packages are listed in `requirements.pip.txt`. + + +Development requirements +------------------------ + +* nodejs >=7 +* yarn + + +Build +----- + +Build tool used for Hatter is pydoit (`http://pydoit.org/`). It can be +installed together with other python dependencies by running:: + + $ pip install -r requirements.pip.txt + +For listing available doit tasks, use:: + + $ doit list + +Default task:: + + $ doit + +creates `dist` folder containing Hatter distribution. + + +TODO +---- + +* automation executor + + * JSON Schema describing YAML configuration + * test and integrate python libvirt interface + * implement retrieval of git repositories and communication with VM guest + * implement execution of automated tasks provided by YAML configuration + * add logging facility for monitoring execution process + +* web server - backend + + * define basic structure for SQLite database + * provide web hooks for incomming push notifications (support Github and + Gitlab events) + * orchestrate automation executor + * JSON Schema describing messages used in communication between backend and + frontend + * implement functionality provided by internal communication protocol + * write complete setup.py + +* user interface - frontend + + * implement communication with backend + * create user interface |
