aboutsummaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorbozo.kopic <bozo.kopic@gmail.com>2017-07-02 02:45:51 +0200
committerbozo.kopic <bozo.kopic@gmail.com>2017-07-02 02:45:51 +0200
commitc75e05b2fcbd08ec77a2ac85837f9f58829a44f6 (patch)
tree446e9f371f0847b78832a8ff5594c56e6c891d7b /README.rst
parent268bb2951c9026e8935c0a99d188416422351a0e (diff)
build environment and basic folder structure
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst75
1 files changed, 75 insertions, 0 deletions
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