civodul pushed a commit to branch master
in repository maintenance.

commit 7f84068ef02ca48a4c676c49d916da0c30a7c40c
Author: Ludovic Courtès <l...@gnu.org>
AuthorDate: Thu Mar 27 23:09:18 2025 +0100
    hydra: services: Turn ‘build-package-metadata.scm’ job into a timer.
    
    * hydra/modules/sysadmin/web.scm (guix-web-site-mcron-jobs): Rename to…
    (guix-web-site-shepherd-services): … this.  Return a list of shepherd
    services.
    (guix-web-site-service-type)[extensions]: Adjust accordingly.
---
 hydra/modules/sysadmin/web.scm | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/hydra/modules/sysadmin/web.scm b/hydra/modules/sysadmin/web.scm
index 2fc8512e..e6aa30a5 100644
--- a/hydra/modules/sysadmin/web.scm
+++ b/hydra/modules/sysadmin/web.scm
@@ -33,7 +33,6 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu services)
-  #:use-module (gnu services mcron)
   #:use-module (gnu services shepherd)
   #:use-module (gnu services web)
   #:use-module (gnu system shadow)
@@ -325,7 +324,7 @@ taken from a Git repository.")
   ;; Directory where to store 'packages.json' and 'sources.json'.
   "/srv/package-metadata")
 
-(define guix-web-site-mcron-jobs
+(define guix-web-site-shepherd-services
   ;; Job that periodically builds 'packages.json' and 'sources.json'.
   (let ((program (program-file "build-package-metadata"
                                #~(execl #$(file-append guix "/bin/guix")
@@ -334,8 +333,17 @@ taken from a Git repository.")
                                         #$(local-file
                                            "../../build-package-metadata.scm")
                                         #$%package-metadata-directory))))
-    (list #~(job "30 */6 * * *" #$program
-                 #:user "static-web-site"))))
+    (list (shepherd-service
+           (provision '(update-package-metadata))
+           (requirement '(user-processes))
+           (modules '((shepherd service timer)))
+           (start #~(make-timer-constructor
+                     (cron-string->calendar-event "30 */6 * * *")
+                     (command '(#$program) #:user "static-web-site")))
+           (stop #~(make-timer-destructor))
+           (actions (list shepherd-trigger-action))
+           (documentation "Update package metadata served as
+https://guix.gnu.org/packages.json and https://guix.gnu.org/sources.json.";)))))
 
 (define guix-web-site-activation
   (with-imported-modules '((guix build utils))
@@ -356,8 +364,8 @@ taken from a Git repository.")
                              (const guix-static-web-sites))
           (service-extension activation-service-type
                              (const guix-web-site-activation))
-          (service-extension mcron-service-type
-                             (const guix-web-site-mcron-jobs))
+          (service-extension shepherd-root-service-type
+                             (const guix-web-site-shepherd-services))
           (service-extension nginx-service-type
                              (const (list guix.gnu.org-nginx-server)))))
    (description

Reply via email to