diff options
Diffstat (limited to 'guix/forge')
-rw-r--r-- | guix/forge/forge.scm | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/guix/forge/forge.scm b/guix/forge/forge.scm index 09f92c9..cfe8337 100644 --- a/guix/forge/forge.scm +++ b/guix/forge/forge.scm @@ -105,7 +105,8 @@ (define-record-type* <forge-configuration> forge-configuration make-forge-configuration forge-configuration? - (web-domain forge-configuration-web-domain) + (web-domain forge-configuration-web-domain + (default #f)) (projects forge-configuration-projects (default '()))) @@ -463,22 +464,27 @@ forge configuration @var{config}." (root website-directory)))) (forge-configuration-projects config))) -(define (forge-tissue-host config) - "Return @code{<tissue-host>} object for forge configuration +(define (forge-tissue-hosts config) + "Return list of @code{<tissue-host>} objects for forge configuration @var{config}." - (tissue-host - (name (forge-configuration-web-domain config)) - (projects - (filter-map (lambda (project) - (and (forge-project-tissue? project) - (tissue-project - (name (forge-project-name project)) - ;; The laminar user must own the host state so - ;; that it can run tissue pull. - (user "laminar") - (upstream-repository - (forge-project-repository project))))) - (forge-configuration-projects config))))) + (match-record config <forge-configuration> + (web-domain projects) + (if web-domain + (list (tissue-host + (name web-domain) + (projects + (filter-map (lambda (project) + (and (forge-project-tissue? project) + (tissue-project + (name (forge-project-name project)) + ;; The laminar user must own the + ;; host state so that it can run + ;; tissue pull. + (user "laminar") + (upstream-repository + (forge-project-repository project))))) + projects)))) + (list)))) (define (forge-ci-jobs config) "Return list of CI jobs for forge configuration @var{config}. Each @@ -572,7 +578,7 @@ value is a list of @code{<webhook-hook>} objects." (service-extension forge-nginx-service-type forge-nginx-server-blocks) (service-extension tissue-service-type - (compose list forge-tissue-host)) + forge-tissue-hosts) (service-extension forge-laminar-service-type forge-ci-jobs+contexts+groups) ;; TODO: Run CI job only if there are new commits @@ -586,4 +592,5 @@ value is a list of @code{<webhook-hook>} objects." (forge-configuration (inherit config) (projects (append (forge-configuration-projects config) - projects))))))) + projects))))) + (default-value (forge-configuration)))) |