summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/evaluate.in6
-rw-r--r--src/cuirass/base.scm3
-rw-r--r--src/cuirass/database.scm8
-rw-r--r--src/schema.sql1
-rw-r--r--tests/database.scm12
5 files changed, 18 insertions, 12 deletions
diff --git a/bin/evaluate.in b/bin/evaluate.in
index 6c5a53f..239bdcc 100644
--- a/bin/evaluate.in
+++ b/bin/evaluate.in
@@ -60,8 +60,10 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
(let* ((proc (module-ref %user-module 'hydra-jobs))
(thunks (proc store (assq-ref spec #:arguments)))
(db (db-open))
- (spec-id (assq-ref spec #:id))
- (eval-id (db-add-evaluation db spec-id)))
+ (commit (assq-ref spec #:current-commit))
+ (eval `((#:specification . ,(assq-ref spec #:id))
+ (#:revision . ,commit)))
+ (eval-id (db-add-evaluation db eval)))
(pretty-print
(map (λ (thunk)
(let* ((job (call-with-time-display thunk))
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index baf8909..52e0d00 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -147,7 +147,8 @@ if required."
(compile (string-append (%package-cachedir) "/"
(assq-ref spec #:name)))
(with-store store
- (let ((jobs (evaluate store db spec)))
+ (let* ((spec* (acons #:current-commit commit spec))
+ (jobs (evaluate store db spec*)))
(set-build-options store #:use-substitutes? #f)
(build-packages store db jobs))))
(db-add-stamp db spec commit)))
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index b831833..2d2dfd2 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -155,9 +155,11 @@ INSERT INTO Derivations (derivation, job_name, evaluation)\
"Retrieve a job in database DB which corresponds to ID."
(car (sqlite-exec db "SELECT * FROM Derivations WHERE derivation='~A';" id)))
-(define (db-add-evaluation db spec-id)
- (sqlite-exec db "INSERT INTO Evaluations (specification) VALUES ('~A');"
- spec-id)
+(define (db-add-evaluation db eval)
+ (sqlite-exec db "\
+INSERT INTO Evaluations (specification, revision) VALUES ('~A', '~A');"
+ (assq-ref eval #:specification)
+ (assq-ref eval #:revision))
(last-insert-rowid db))
(define-syntax-rule (with-database db body ...)
diff --git a/src/schema.sql b/src/schema.sql
index 725d145..a545da5 100644
--- a/src/schema.sql
+++ b/src/schema.sql
@@ -23,6 +23,7 @@ CREATE TABLE Stamps (
CREATE TABLE Evaluations (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
specification INTEGER NOT NULL,
+ revision TEXT NOT NULL,
FOREIGN KEY (specification) REFERENCES Specifications (id)
);
diff --git a/tests/database.scm b/tests/database.scm
index eecef8b..8cc022a 100644
--- a/tests/database.scm
+++ b/tests/database.scm
@@ -59,12 +59,12 @@
(test-assert "sqlite-exec"
(begin
- (sqlite-exec (%db)
- "INSERT INTO Evaluations (specification) VALUES (1);")
- (sqlite-exec (%db)
- "INSERT INTO Evaluations (specification) VALUES (2);")
- (sqlite-exec (%db)
- "INSERT INTO Evaluations (specification) VALUES (3);")
+ (sqlite-exec (%db) "\
+INSERT INTO Evaluations (specification, revision) VALUES (1, 1);")
+ (sqlite-exec (%db) "\
+INSERT INTO Evaluations (specification, revision) VALUES (2, 2);")
+ (sqlite-exec (%db) "\
+INSERT INTO Evaluations (specification, revision) VALUES (3, 3);")
(sqlite-exec (%db) "SELECT * FROM Evaluations;")))
(test-equal "db-add-specification"