diff options
author | Jan200101 <sentrycraft123@gmail.com> | 2023-01-10 13:32:52 +0100 |
---|---|---|
committer | Jan200101 <sentrycraft123@gmail.com> | 2023-01-10 13:32:52 +0100 |
commit | 13c4a1446bd5337c0a500498803ef17a438bc6ac (patch) | |
tree | da2ebb25838b9ec2a6070c36d6a5736f36895293 | |
parent | 1f616ab22d64030f98310898cde6178bbdff390f (diff) | |
download | cgci-13c4a1446bd5337c0a500498803ef17a438bc6ac.tar.gz cgci-13c4a1446bd5337c0a500498803ef17a438bc6ac.zip |
improve 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. |