summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2018-12-18 22:55:50 +0300
committerAlex Kost <alezost@gmail.com>2018-12-18 22:55:50 +0300
commit6a1b593d31837def0cd329e35b070dc897fbf7e7 (patch)
tree3b3c6277ad532a57c6cbe668f89c7ef6b5d2bdfe
parenturl: Add and use "https://ci.guix.info" (diff)
downloademacs-build-farm-6a1b593d31837def0cd329e35b070dc897fbf7e7.tar.gz
Update Cuirass evaluations for the latest API
Follow the changes introduced by <https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git/commit/?id=8d40c49170971ad7bbf8b97336934dbb3d949fc1>. * build-farm-evaluation.el: Handle the new 'in-progress' an 'checkouts' parameters. * build-farm.el: Update required BUI version to 1.2.1 as its new feature is used to display 'commit' parameter in the evaluation list buffer.
-rw-r--r--build-farm-evaluation.el47
-rw-r--r--build-farm.el2
2 files changed, 43 insertions, 6 deletions
diff --git a/build-farm-evaluation.el b/build-farm-evaluation.el
index 268d775..7105aa2 100644
--- a/build-farm-evaluation.el
+++ b/build-farm-evaluation.el
@@ -28,7 +28,7 @@
(require 'build-farm-build)
(defgroup build-farm-evaluation nil
- "Interface for Hydra and Cuirass evaluations."
+ "Settings for Hydra and Cuirass evaluations."
:group 'build-farm)
(defcustom build-farm-number-of-evaluations 32
@@ -67,7 +67,9 @@ command. If nil, always prompt for the number of evaluations."
(build-farm-define-entry-type cuirass-evaluation
:search-types '((latest . build-farm-latest-evaluations-api-url))
- :filter-names '((specification . jobset)))
+ :filter-names '((specification . jobset))
+ :filter-boolean-params '(in-progress)
+ :boolean-params '(in-progress))
;;; Cuirass Evaluation 'info'
@@ -80,7 +82,15 @@ command. If nil, always prompt for the number of evaluations."
build-farm-evaluation-info-insert-url
nil
(jobset format (build-farm-cuirass-evaluation-info-insert-jobset))
- (commits format (format))))
+ (in-progress format (format))
+ (checkouts
+ simple (build-farm-cuirass-evaluation-info-insert-checkouts))))
+
+(bui-define-interface build-farm-cuirass-evaluation-checkouts info
+ :format '((commit format (format))
+ (input format (format))
+ (directory format (format bui-file)))
+ :reduced? t)
(defun build-farm-cuirass-evaluation-info-insert-jobset (jobset)
"Insert info about Cuirass JOBSET at point."
@@ -89,6 +99,13 @@ command. If nil, always prompt for the number of evaluations."
(build-farm-info-insert-builds-button
:jobset jobset))
+(defun build-farm-cuirass-evaluation-info-insert-checkouts (checkouts)
+ "Insert 'cuirass-evaluation' CHECKOUTS at point."
+ (dolist (checkout checkouts)
+ (bui-newline)
+ (bui-info-insert-entry
+ checkout 'build-farm-cuirass-evaluation-checkouts 1)))
+
;;; Cuirass Evaluation 'list'
@@ -96,9 +113,29 @@ command. If nil, always prompt for the number of evaluations."
:describe-function 'build-farm-list-describe
:mode-name "Cuirass-Evaluation-List"
:buffer-name "*Farm Evaluations*"
- :format '((id nil 10 bui-list-sort-numerically-0)
+ :format '((id build-farm-cuirass-evaluation-list-id
+ 10 bui-list-sort-numerically-0)
(jobset nil 30 t)
- (commits nil 30 t)))
+ (commit build-farm-cuirass-evaluation-list-commit 30 t)))
+
+(defface build-farm-cuirass-evaluation-list-in-progress
+ '((t :inherit font-lock-variable-name-face))
+ "Face used for evaluation ID if it is in progress."
+ :group 'build-farm-cuirass-evaluation-list-faces)
+
+(defun build-farm-cuirass-evaluation-list-id (id entry)
+ "Return first ID of evaluation ENTRY.
+Fontify it depending on 'in-progress' status."
+ (bui-get-string
+ id
+ (and (bui-entry-non-void-value entry 'in-progress)
+ 'build-farm-cuirass-evaluation-list-in-progress)))
+
+(defun build-farm-cuirass-evaluation-list-commit (_ entry)
+ "Return first commit of evaluation ENTRY."
+ (let ((checkouts (bui-entry-non-void-value entry 'checkouts)))
+ (when checkouts
+ (bui-entry-non-void-value (car checkouts) 'commit))))
;;; Interactive commands
diff --git a/build-farm.el b/build-farm.el
index 5f76a50..ec5b7f5 100644
--- a/build-farm.el
+++ b/build-farm.el
@@ -6,7 +6,7 @@
;; Version: 0.2.1
;; URL: https://gitlab.com/alezost-emacs/build-farm
;; Keywords: tools
-;; Package-Requires: ((emacs "24.4") (bui "1.1.0") (magit-popup "2.1.0"))
+;; Package-Requires: ((emacs "24.4") (bui "1.2.1") (magit-popup "2.1.0"))
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by