aboutsummaryrefslogtreecommitdiff
path: root/src/sql
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2020-09-10 14:25:19 +0200
committerMathieu Othacehe <othacehe@gnu.org>2020-09-10 15:16:15 +0200
commitf5b0d39328567a20336945bf1e2ff93aff1a9973 (patch)
tree6c42597061c14826ecd2cdfdc90559be44a814bd /src/sql
parentaf12a80599346968fb9f52edb33b48dd26852788 (diff)
downloadcuirass-f5b0d39328567a20336945bf1e2ff93aff1a9973.tar
cuirass-f5b0d39328567a20336945bf1e2ff93aff1a9973.tar.gz
Add a status field to Evaluation table.
The Evaluation table currently has an 'in_progress' field. Distinction between succeeded and failed evaluations are based on the presence of Builds records for the evaluation. It it also not possible to distinguish aborted evaluations from failed evaluations. Rename 'in_progress' field to 'status'. The 'status' field can be equal to 'started', 'succeeded', 'failed' or 'aborted'. * src/cuirass/database.scm (evaluation-status): New exported enumeration. (db-set-evaluations-done, db-set-evaluation-done): Remove them. (db-abort-pending-evaluations, db-set-evaluation-status): New exported procedures. (db-add-evaluation, db-get-builds, db-get-evaluations, db-get-evaluations-build-summary, db-get-evaluation-summary): Adapt to use 'status' field instead of 'in_progress' field. * src/cuirass/templates.scm (evaluation-badges): Ditto. * src/schema.sql (Evaluations): Rename 'in_progress' field to 'status'. * src/sql/upgrade-10.sql: New file. * bin/cuirass.in (main): Use "db-abort-pending-evaluations" instead of "db-set-evaluations-done". * src/cuirass/base.scm (evaluate): Use "db-set-evaluation-status" instead of "db-set-evaluations-done". (build-packages): Use "db-set-evaluation-status" instead of "db-set-evaluation-done". * tests/database.scm (sqlite-exec): Adapt accordingly. * tests/http.scm (evaluations-query-result): Ditto.
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/upgrade-10.sql12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/sql/upgrade-10.sql b/src/sql/upgrade-10.sql
new file mode 100644
index 0000000..0ad299c
--- /dev/null
+++ b/src/sql/upgrade-10.sql
@@ -0,0 +1,12 @@
+BEGIN TRANSACTION;
+
+ALTER TABLE Evaluations RENAME COLUMN in_progress TO status;
+
+-- Set all pending evaluations to aborted.
+UPDATE Evaluations SET status = 2 WHERE status = 1;
+
+-- All evaluations that did not trigger any build are set to failed.
+UPDATE Evaluations SET status = 1 WHERE id NOT IN
+(SELECT evaluation FROM Builds);
+
+COMMIT;