From 13c4a1446bd5337c0a500498803ef17a438bc6ac Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Tue, 10 Jan 2023 13:32:52 +0100 Subject: improve README.md --- README.md | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 311e03f..61d93bd 100644 --- a/README.md +++ b/README.md @@ -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. -- cgit v1.2.3