summary refs log tree commit diff
path: root/forge
diff options
context:
space:
mode:
Diffstat (limited to 'forge')
-rw-r--r--forge/forge.scm13
1 files changed, 9 insertions, 4 deletions
diff --git a/forge/forge.scm b/forge/forge.scm
index 526cc43..4c9fb41 100644
--- a/forge/forge.scm
+++ b/forge/forge.scm
@@ -115,7 +115,7 @@ described by <forge-derivation-job> objects, transform them to
              job))
        (forge-project-configuration-ci-jobs project)))
 
-(define (ci-jobs-trigger-gexp ci-jobs)
+(define* (ci-jobs-trigger-gexp ci-jobs #:key reason)
   "Return a G-expression that triggers CI-JOBS. CI-JOBS is a list of
 <forge-laminar-job> objects."
   (with-imported-modules '((guix build utils))
@@ -124,6 +124,8 @@ described by <forge-derivation-job> objects, transform them to
         ;; TODO: Only trigger on updates to the main/master branch.
         (display "Triggering continuous integration jobs..." (current-error-port))
         (newline (current-error-port))
+        (when reason
+          (setenv "LAMINAR_REASON" reason))
         (apply invoke
                #$(file-append laminar "/bin/laminarc")
                "queue" '#$(map forge-laminar-job-name ci-jobs)))))
@@ -138,7 +140,8 @@ described by <forge-derivation-job> objects, transform them to
                       (program-file
                        (forge-project-configuration-name project)
                        (ci-jobs-trigger-gexp
-                        (forge-project-configuration-laminar-jobs project config)))
+                        (forge-project-configuration-laminar-jobs project config)
+                        #:reason "post-receive hook"))
                       (forge-project-configuration-ci-jobs-trigger project)))
               (forge-configuration-projects config))))
     #~(begin
@@ -263,7 +266,8 @@ derivation to run."
                                                                     #$(program-file
                                                                        (forge-project-configuration-name project)
                                                                        (ci-jobs-trigger-gexp
-                                                                        (forge-project-configuration-laminar-jobs project config)))
+                                                                        (forge-project-configuration-laminar-jobs project config)
+                                                                        #:reason "Cron job"))
                                                                     #:user "laminar")))
                                                       (forge-configuration-projects config))))
                      (service-extension webhook-service-type
@@ -274,6 +278,7 @@ derivation to run."
                                                              (webhook-hook
                                                               (id (forge-project-configuration-name project))
                                                               (run (ci-jobs-trigger-gexp
-                                                                    (forge-project-configuration-laminar-jobs project config))))))
+                                                                    (forge-project-configuration-laminar-jobs project config)
+                                                                    #:reason "Webhook")))))
                                                       (forge-configuration-projects config))))))
    (default-value (forge-configuration))))