Update documentation to include local run
[candle] / README.md
1 = Candle =
2
3 Continuous Integration for SBCL based Lisp projects, using AWS instances
4 as the machines on which the CI's are run.
5
6 = .candle file =
7
8 Each project with a candle file has a .candle file in the root of the project
9 with tasks to be run.
10
11 = Limitations =
12
13 This documentation needs to be updated once more things are working, but this is an
14 early version of everything.
15
16 This only works in the following:
17
18  * SBCL
19  * Linux
20  * Git as source control
21  * AWS as remote code
22
23 There is also no email, and everything else handled via the CLI.
24
25 Only one can be running at a time.
26
27 = Usage =
28
29 * Run bin/candle-server on a server somewhere, so that the candle client can connect to it
30 * Add projects via `bin/candle project --add`, see `--help` for more information
31 * Run `bin/candle project --show <name>` to show status of project
32   * Includes what branches are failing
33 * Run `bin/candle project --list` to show list all projects, and status
34 * Run `bin/candle job --log <project>:<sha>` to see log
35
36 == Local ==
37
38 * Run `bin/candle run` from a candle enabled project
39
40 = General Design =
41
42 For all projects added, a watcher thread runs `git fetch origin` to see if there's any
43 new SHAs for which jobs need to be run.
44
45 When a previously unknown SHA shows up in the git directory, a job is created for that
46 SHA, which then clones the repository into the right place and runs `candle` for that location,
47 if there's a .candle file.
48
49 A project is failing if any branches are failing, that is to say that the current sha
50 for that branch is failing.
51
52 == Edge Cases ==
53
54 * For SHAs that hang, or get into infinite loops, there's a timeout before the server is killed
55   and marked as failure.