From c75e05b2fcbd08ec77a2ac85837f9f58829a44f6 Mon Sep 17 00:00:00 2001 From: "bozo.kopic" Date: Sun, 2 Jul 2017 02:45:51 +0200 Subject: build environment and basic folder structure --- README.rst | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'README.rst') diff --git a/README.rst b/README.rst index e69de29..0197b21 100644 --- a/README.rst +++ b/README.rst @@ -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 -- cgit v1.2.3-70-g09d2