diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 37 |
1 files changed, 33 insertions, 4 deletions
@@ -1,8 +1,37 @@ -# cgci +# CGCI very simplistic and naive CI written in C using CGI -## Dependencies +## How it works -Since this project depends on CGI you need something to run it. -For development I've been running nginx with fcgiwrap, other setups may not work. +### Routing + +paths are split into 4 segments: +- project +- action +- index +- extra + +they define what shuold be done with which project and how to do it. + +examples: +- `/proj` lists builds for `proj` +- `/proj/builds/2` lists information for build `2` of `proj` +- `/proj/builds/2/raw_log` returns the raw logs for build `2` of `proj` + +### Building + +Upon a build being triggered the process forks off into a builder which keeps track of the running target process and writes it to disk on completion. + +### States + +Build states are stored in the persistant system cache (`/var/cache/cgci`), read by the running process and written by the builder. +State ID's are simply counted up and not unique. + +## How to run + +CGCI needs a web server that is able to serve CGI scripts. + +During development [nginx](https://nginx.org/) with [fcgiwrap](https://github.com/gnosek/fcgiwrap) was used, other CGI servers may work but your mileage may vary. + +Python's webserver claims to be capable of running CGI script but is not compliant with the CGI spec, DO NOT USE. |