summaryrefslogtreecommitdiff
path: root/guix/forge/forge.scm
diff options
context:
space:
mode:
authorArun Isaac2022-03-14 18:04:31 +0530
committerArun Isaac2022-03-14 18:04:31 +0530
commit8c07c7eb1dadf179c51fc23e1969aacf0169b697 (patch)
tree4d585f82df1f643ef08c34be01cef813b241c3f2 /guix/forge/forge.scm
parent36dbe925601d7be5dfd5c1beaa2406b1d5dbc00c (diff)
downloadguix-forge-8c07c7eb1dadf179c51fc23e1969aacf0169b697.tar.gz
guix-forge-8c07c7eb1dadf179c51fc23e1969aacf0169b697.tar.lz
guix-forge-8c07c7eb1dadf179c51fc23e1969aacf0169b697.zip
forge: Allow deep clone on derivation jobs.
* guix/forge/forge.scm (derivation-job-gexp): Accept #:deep-clone? argument and pass on to latest-git-checkout. * guix/forge/build/git.scm (download-git-to-store): Accept #:deep-clone? argument, and deep clone the git repository if it is #t. Explicitly specify the first commit to `git log' so that only the first commit message is displayed.
Diffstat (limited to 'guix/forge/forge.scm')
-rw-r--r--guix/forge/forge.scm13
1 files changed, 10 insertions, 3 deletions
diff --git a/guix/forge/forge.scm b/guix/forge/forge.scm
index e88edb0..f8acc80 100644
--- a/guix/forge/forge.scm
+++ b/guix/forge/forge.scm
@@ -156,15 +156,21 @@
(name (guix-module-name? name))))
(define* (derivation-job-gexp project job gexp-producer
- #:key (guix-daemon-uri (%daemon-socket-uri)))
+ #:key (guix-daemon-uri (%daemon-socket-uri)) deep-clone?)
"Return a G-expression that builds another G-expression as a
derivation and returns its output path. GEXP-PRODUCER is a
G-expression that expands to a lambda function. The lambda function
takes one argument---the latest git checkout of PROJECT, a
<forge-project> object---and returns a G-expression describing a
derivation to run. JOB is a <forge-laminar-job> object representing
-the job that this derivation will be part of. GUIX_DAEMON_URI is a
-file name or URI designating the Guix daemon endpoint."
+the job that this derivation will be part of.
+
+GUIX_DAEMON_URI is a file name or URI designating the Guix daemon
+endpoint.
+
+If DEEP-CLONE? is #t, the git checkout is a deep clone of the
+repository that includes the .git directory. Else, it is a shallow
+clone and does not include the .git directory."
(with-imported-modules (source-module-closure '((forge build git)
(guix gexp)
(guix profiles))
@@ -209,6 +215,7 @@ file name or URI designating the Guix daemon endpoint."
#$(string-append (forge-project-name project)
"-checkout")
#$(forge-project-repository project)
+ #:deep-clone? #$deep-clone?
#:show-commit? #t))
(drv (gexp->derivation #$(string-append
(forge-laminar-job-name job)