Age | Commit message (Collapse) | Author |
|
* forge/forge.scm: Import (forge utils).
|
|
This aids debugging especially when a job fails.
* forge/build/git.scm (hline): New function.
(download-git-to-store): Add #:show-commit? keyword argument. When
show-commit? is #t, print current commit.
* forge/forge.scm (gexp-producer->job-script): Pass #t as
#:show-commit? to latest-git-checkout.
|
|
Implement our own git downloader independent of that provided by
Guix. This is required for better control of the output, and to later
print the current git commit.
* forge/build/git.scm: Do not import (guix build git). Import (rnrs
exceptions).
(download-git-to-store): Do not accept #:git-command argument. Expect
git and nss-certs to be in the environment. Do not call git-fetch
from (guix build git).
* forge/forge.scm: Import nss-certs from (gnu packages certs).
(gexp-producer->job-script): Run in environment with the git-minimal
and nss-certs packages. Do not pass #:git-command to
latest-git-checkout.
|
|
* forge/forge.scm (ci-jobs-trigger-gexp): Ungexp reason argument.
|
|
* forge/forge.scm (ci-jobs-trigger-gexp): Accept #:reason keyword
argument and set LAMINAR_REASON.
(forge-activation, forge-service-type): Pass #:reason keyword
argument.
|
|
* forge/forge.scm (ci-jobs-trigger-gexp): Accept <forge-laminar-job>
objects.
(forge-activation, forge-service-type): Pass <forge-laminar-job>
objects.
|
|
* forge/forge.scm: Import (forge webhook).
(<forge-project-configuration>)[ci-jobs-trigger]: Allow 'webhook.
(forge-service-type): Extend webhook-service-type.
|
|
G-expressions are more versatile than file-like objects and compose
cleanly under different circumstances.
* forge/forge.scm (ci-jobs-trigger-script): Rename to
ci-jobs-trigger-gexp and return a G-expression.
(forge-activation, forge-service-type): Invoke ci-jobs-trigger-gexp
instead of ci-jobs-trigger-script and pass its output to program-file.
|
|
Allow explicitly specifying the CI jobs trigger mechanism. This will
enable us to later introduce the webhook trigger mechanism.
* forge/forge.scm: Export forge-project-configuration-ci-jobs-trigger.
(<forge-project-configuration>)[ci-jobs-trigger]: New field.
(forge-activation): Use the ci-jobs-trigger field to decide whether to
install the post receive hook.
(forge-service-type): Use the ci-jobs-trigger field to decide whether
to set up a cron job.
|
|
ci-jobs-trigger is a more generic term, and better reflects its
use not only as a post-receive hook, but also as a cron job. Later,
ci-jobs-trigger will also be used as a webhook command.
* forge/forge.scm (post-receive-hook): Rename to
ci-jobs-trigger-script.
(forge-activation, forge-service-type): Invoke ci-jobs-trigger-script
instead of post-receive-hook.
|
|
Prior to this commit, group regular expressions could match parts of
job names. After this commit, they will only match the entire job
name.
* forge/forge.scm (forge-service-type): Surround regex in a
non-capturing group, and ^ and $ for exact matches.
|
|
* forge/forge.scm: Import (srfi srfi-26). Export
forge-configuration-guix-daemon-uri.
(<forge-configuration>)[guix-daemon-uri]: New field.
(forge-project-configuration-laminar-jobs): Accept forge configuration
as argument and pass on guix-daemon-uri to gexp-producer->job-script.
(forge-activation, forge-service-type): Pass forge configuration to
forge-project-configuration-laminar-jobs.
(gexp-producer->job-script): Accept guix-daemon-uri as argument and
parameterize store accesses with it.
|
|
* forge/forge.scm: Import guile-gcrypt from (gnu packages gnupg),
guile-3.0 and guile-zlib from (gnu packages guile), git-minimal
from (gnu packages version-control), (guix gexp), (guix
modules), (guix packages), and (guix store). Export
forge-derivation-job, forge-derivation-job-name,
forge-derivation-job-run and forge-derivation-job-after.
(<forge-derivation-job>): New type.
(forge-project-configuration-laminar-jobs, import-module?,
gexp-producer->job-script): New function.
(forge-activation, forge-service-type): Call
forge-project-configuration-laminar-jobs instead of
forge-project-configuration-ci-jobs.
|
|
* forge/forge.scm (<forge-project-configuration>)[repository-branch]:
New field.
Export forge-project-configuration-repository-branch.
|
|
I forgot to bump the copyright year in an earlier commit.
* forge/forge.scm: Bump copyright year.
|
|
* forge/forge.scm (<forge-project-configuration>)[user]: Set default
value to #f.
|
|
* forge/laminar.scm: Rename all guix-laminar-* names to
forge-laminar-*.
* forge/forge.scm (forge-activation, forge-service-type): Replace
guix-laminar-job-name with forge-laminar-job-name.
(forge-service-type): Replace guix-laminar-service-type with
forge-laminar-service-type and guix-laminar-group with
forge-laminar-group.
|
|
(gnu packages ci) is required for the laminar package.
* forge/forge.scm: Import (gnu packages ci).
|
|
|