From 4370acce1939e8ea72ed80218dc5e29aa10ae0bb Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe@gnu.org>
Date: Sat, 30 Jan 2021 18:10:31 +0100
Subject: [PATCH] Sort workers consistently.

* src/cuirass/templates.scm (workers-status): Sort workers consistently.
---
 src/cuirass/templates.scm | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

diff --git a/src/cuirass/templates.scm b/src/cuirass/templates.scm
index b9a3e2fb..14b8c0ce 100644
--- a/src/cuirass/templates.scm
+++ b/src/cuirass/templates.scm
@@ -1029,28 +1029,29 @@ completed builds divided by the time required to build them.")
 
 (define (workers-status workers builds)
   (define (machine-row machine)
-    (let* ((workers (filter (lambda (worker)
-                              (string=? (worker-machine worker)
-                                        machine))
-                            workers))
+    (let* ((workers (sort (filter-map
+                           (lambda (worker)
+                             (and (string=? (worker-machine worker)
+                                            machine)
+                                  (worker-name worker)))
+                           workers)
+                          string<?))
            (builds
             (map (lambda (worker)
                    (match (filter
                            (lambda (build)
-                             (let ((name (worker-name worker)))
-                               (let ((build-worker
-                                      (assq-ref build #:worker)))
-                                 (and build-worker
-                                      (string=? build-worker name)))))
-                                  builds)
+                             (let ((build-worker
+                                    (assq-ref build #:worker)))
+                               (and build-worker
+                                    (string=? build-worker worker))))
+                           builds)
                      (() #f)
                      ((build _ ...) build)))
-                        workers)))
+                 workers)))
       `(div (@ (class "col-sm-4 mt-3"))
             (h6 ,machine)
-            ,(map (lambda (worker build)
-                    (let ((name (worker-name worker))
-                          (style (format #f
+            ,(map (lambda (build)
+                    (let ((style (format #f
                                          "width: ~a%"
                                          (if build
                                              (assq-ref build #:percentage)
@@ -1075,7 +1076,7 @@ d-flex position-absolute w-100"))
                                         (@ (class "justify-content-center
 text-dark d-flex position-absolute w-100"))
                                         "idle"))))))
-                  workers builds))))
+                  builds))))
 
   (let ((machines (reverse
                    (sort (delete-duplicates
-- 
GitLab