aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan200101 <sentrycraft123@gmail.com>2023-01-10 13:32:52 +0100
committerJan200101 <sentrycraft123@gmail.com>2023-01-10 13:32:52 +0100
commit13c4a1446bd5337c0a500498803ef17a438bc6ac (patch)
treeda2ebb25838b9ec2a6070c36d6a5736f36895293
parent1f616ab22d64030f98310898cde6178bbdff390f (diff)
downloadcgci-13c4a1446bd5337c0a500498803ef17a438bc6ac.tar.gz
cgci-13c4a1446bd5337c0a500498803ef17a438bc6ac.zip
improve README.md
-rw-r--r--README.md37
1 files 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.