civodul pushed a commit to branch master
in repository maintenance.
commit 7f84068ef02ca48a4c676c49d916da0c30a7c40c
Author: Ludovic Courtès <[email protected]>
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