Add job --log
[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 * Remove projects via `bin/candle project --delete`, see `--help` for more information
32 * Run `bin/candle project --show <name>` to show status of project
33   * Includes what branches are failing
34 * Run `bin/candle project --list` to show list all projects, and status
35 * Run `bin/candle job --log <project>:<sha>` to see log
36
37 == Local ==
38
39 * Run `bin/candle run` from a candle enabled project
40
41 = General Design =
42
43 For all projects added, a watcher thread runs `git fetch origin` to see if there's any
44 new SHAs for which jobs need to be run.
45
46 When a previously unknown SHA shows up in the git directory, a job is created for that
47 SHA, which then clones the repository into the right place and runs `candle` for that location,
48 if there's a .candle file.
49
50 A project is failing if any branches are failing, that is to say that the current sha
51 for that branch is failing.
52
53 == Edge Cases ==
54
55 * For SHAs that hang, or get into infinite loops, there's a timeout before the server is killed
56   and marked as failure.