schema: Builds: Add 'evaluation' column.

* src/schema.sql (Builds): Add 'evaluation' column.
* src/cuirass/database.scm (db-add-build): Adapt.
* src/cuirass/base.scm (build-packages): Likewise.
This commit is contained in:
Mathieu Lirzin 2016-07-27 13:21:11 +02:00
parent 5c0a2b5779
commit 24bfb61e8e
No known key found for this signature in database
GPG Key ID: 0ADEE10094604D37
3 changed files with 19 additions and 11 deletions

View File

@ -121,19 +121,21 @@ if required."
(map (λ (job)
(let ((log-port (%make-void-port "w0"))
(name (assq-ref job #:job-name))
(drv (assq-ref job #:derivation)))
(drv (assq-ref job #:derivation))
(eval-id (assq-ref job #:eval-id)))
(simple-format #t "building ~A...\n" drv)
(parameterize ((current-build-output-port log-port))
(build-derivations store (list drv))
(let* ((output (derivation-path->output-path drv))
(log (log-file store output))
(build `((#:derivation . ,drv)
(#:eval-id . ,eval-id)
(#:log . ,log)
(#:output . ,output)))
(id (db-add-build db build)))
(close-port log-port)
(#:output . ,output))))
(db-add-build db build)
(simple-format #t "~A\n" output)
(acons #:id id build)))))
(close-port log-port)
build))))
jobs))
(define (process-specs db jobspecs)

View File

@ -180,8 +180,10 @@ string."
(define (db-add-build db build)
"Store BUILD in database DB."
(sqlite-exec db "\
INSERT INTO Builds (derivation, log, output) VALUES ('~A', '~A', '~A');"
INSERT INTO Builds (derivation, evaluation, log, output)\
VALUES ('~A', '~A', '~A', '~A');"
(assq-ref build #:derivation)
(assq-ref build #:eval-id)
(assq-ref build #:log)
(assq-ref build #:output))
(last-insert-rowid db))

View File

@ -34,12 +34,16 @@ CREATE TABLE Derivations (
FOREIGN KEY (evaluation) REFERENCES Evaluations (id)
);
-- Builds are not in a one to one relationship with derivations in order to
-- keep track of non deterministic compilations.
CREATE TABLE Builds (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
derivation TEXT NOT NULL,
log TEXT NOT NULL,
output TEXT, -- NULL if build failed
FOREIGN KEY (derivation) REFERENCES Evaluations (derivation)
derivation TEXT NOT NULL,
evaluation INTEGER NOT NULL,
log TEXT NOT NULL,
output TEXT, -- NULL if build failed
PRIMARY KEY (derivation, evaluation),
FOREIGN KEY (derivation) REFERENCES Derivations (derivation),
FOREIGN KEY (evaluation) REFERENCES Evaluations (id)
);
COMMIT;