diff options
author | Arun Isaac | 2022-02-09 00:14:04 +0530 |
---|---|---|
committer | Arun Isaac | 2022-02-09 15:15:21 +0530 |
commit | 4187ea8eaf5a5e3c7805f221a4f7fe92cc880106 (patch) | |
tree | 8708a7b63d6ad1d0d0a3935a115e9d9c1ec48edd | |
parent | 8ff8e71eb1639e244ff003e379c4b19bc5db4ba9 (diff) | |
download | guix-forge-4187ea8eaf5a5e3c7805f221a4f7fe92cc880106.tar.gz guix-forge-4187ea8eaf5a5e3c7805f221a4f7fe92cc880106.tar.lz guix-forge-4187ea8eaf5a5e3c7805f221a4f7fe92cc880106.zip |
forge: Support triggering jobs with a webhook.
* forge/forge.scm: Import (forge webhook).
(<forge-project-configuration>)[ci-jobs-trigger]: Allow 'webhook.
(forge-service-type): Extend webhook-service-type.
-rw-r--r-- | forge/forge.scm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/forge/forge.scm b/forge/forge.scm index 1ff5f93..fbdce3b 100644 --- a/forge/forge.scm +++ b/forge/forge.scm @@ -33,6 +33,7 @@ #:use-module (guix records) #:use-module (guix store) #:use-module (forge laminar) + #:use-module (forge webhook) #:export (forge-service-type forge-configuration forge-configuration-guix-daemon-uri @@ -66,7 +67,7 @@ (default #f)) (ci-jobs forge-project-configuration-ci-jobs (default '())) - (ci-jobs-trigger forge-project-configuration-ci-jobs-trigger ; one of 'post-receive-hook, 'cron + (ci-jobs-trigger forge-project-configuration-ci-jobs-trigger ; one of 'post-receive-hook, 'cron, 'webhook (default (cond ;; 'post-receive-hook for local repositories ((string-prefix? "/" (forge-project-configuration-repository this-record)) @@ -265,5 +266,16 @@ derivation to run." (map forge-laminar-job-name (forge-project-configuration-laminar-jobs project config)))) #:user "laminar"))) + (forge-configuration-projects config)))) + (service-extension webhook-service-type + (lambda (config) + (filter-map (lambda (project) + (and (eq? (forge-project-configuration-ci-jobs-trigger project) + 'webhook) + (webhook-hook + (id (forge-project-configuration-name project)) + (run (ci-jobs-trigger-gexp + (map forge-laminar-job-name + (forge-project-configuration-laminar-jobs project config))))))) (forge-configuration-projects config)))))) (default-value (forge-configuration)))) |