diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm index 278066b..c10c9d4 100644 --- a/guix-data-service/jobs/load-new-guix-revision.scm +++ b/guix-data-service/jobs/load-new-guix-revision.scm @@ -361,34 +361,34 @@ WHERE job_id = $1") result))))) (define (inferior-guix-systems inf) - (cond - ((inferior-eval - '(defined? 'systems - (resolve-module '(guix platform))) - inf) + ;; The order shouldn't matter here, but bugs in Guix can lead to different + ;; results depending on the order, so sort the systems to try and provide + ;; deterministic behaviour + (sort + (cond + ((inferior-eval + '(defined? 'systems + (resolve-module '(guix platform))) + inf) - (remove - (lambda (system) - ;; There aren't currently bootstrap binaries for s390x-linux, so this - ;; just leads to lots of errors - (string=? system "s390x-linux")) + (remove + (lambda (system) + ;; There aren't currently bootstrap binaries for s390x-linux, so this + ;; just leads to lots of errors + (string=? system "s390x-linux")) + (inferior-eval + '((@ (guix platform) systems)) + inf))) + + (else (inferior-eval - '((@ (guix platform) systems)) + '(@ (guix packages) %supported-systems) inf))) - - (else - (inferior-eval - '(@ (guix packages) %supported-systems) - inf)))) + string