Formalize errors and error handling
[candle] / src / main / base.lisp
1 (in-package #:candle)
2
3 (defvar *candle-dir*)
4
5 (define-condition candle-error (error) ((reason :initarg :reason :reader candle-error-reason)))
6 (defun raise-candle-error (reason) (error (make-instance 'candle-error :reason reason)))
7
8 (lame-db:defdbstruct project name src)
9
10 ; Status here is:
11 ; - :queued - to be run
12 ; - :failed - job failed
13 ; - :succeeded - job succeeded
14 ; - :no-candle-file - no candle file was found
15 ; - :in-progress - job is running
16 (lame-db:defdbstruct job status sha create-date log (project :join project))
17
18 ; in-git here refers to whether the branch exists in git.  As branches get deleted,
19 ; this will get set to nil but we keep them around for historical reference
20 (lame-db:defdbstruct branch name in-git (project :join project) (job :join job))
21
22 (defun project-dir (project)
23  (format nil "~Arepos/~A/" *candle-dir* (project-name project)))