Age | Commit message (Expand) | Author |
2022-02-28 | doc: Add reference documentation machinery.•••* doc/skribilo.scm: Import (srfi srfi-1), (srfi srfi-9), (srfi
srfi-26) and (srfi srfi-171).
(<record>, <no-default>, <record-field>): New record types.
(field-sexp->record-field, record-sexp->record,
find-record-definition, expression->string): New functions.
(record-documentation, record-field): New public functions.
| Arun Isaac |
2022-02-28 | forge: Rename <forge-project-configuration> to <forge-project>.•••We need not suffix every record name with "configuration". Besides,
<forge-project> is not directly a service configuration record.
* forge/forge.scm (forge)[<forge-project-configuration>]: Rename to
<forge-project>.
Update all invocations of <forge-project> accessors.
| Arun Isaac |
2022-02-28 | forge: Deprecate <forge-derivation-job>.•••* forge/forge.scm (<forge-derivation-job>): Delete record type.
(<forge-configuration>)[guix-daemon-uri]: Delete field.
(forge-project-configuration-laminar-jobs): Delete function.
(forge-activation, forge-service-type): Use
forge-project-configuration-ci-jobs instead of
forge-project-configuration-laminar-jobs.
(gexp-producer->job-script): Delete function.
| Arun Isaac |
2022-02-28 | forge: Introduce gexp-producer->derivation-output.•••gexp-producer->derivation-output will allow us to deprecate
<forge-derivation-job> and enable users to construct laminar jobs that
build derivations with just <forge-laminar-job>.
* forge/forge.scm (gexp-producer->derivation-output): New public
function.
| Arun Isaac |
2022-02-28 | forge: Thunk ci-jobs and run fields.•••These fields need to be thunked to allow the user access to
this-record accessors when describing jobs.
* forge/forge.scm (<forge-project-configuration>)[ci-jobs]: Thunk
field.
* forge/laminar.scm (<forge-laminar-job>)[run]: Thunk field.
| Arun Isaac |
2022-02-28 | forge: Export record type predicates.•••Predicates are also a part of the public interface of a record type
and are sometimes required.
* forge/forge.scm: Export predicates forge-configuration?,
forge-project-configuration? and forge-derivation-job?.
* forge/laminar.scm: Export predicate forge-laminar-configuration?.
| Arun Isaac |
2022-02-28 | forge: Export forge-project-configuration-name.•••* forge/forge.scm: Export forge-project-configuration-name.
| Arun Isaac |
2022-02-28 | forge: Add this-record accessors.•••These this-record accessors will be required in thunked fields.
* forge/forge.scm (<forge-project-configuration>): Add
this-forge-project-configuration accessor and export it. Use it
instead of this-record in the default value of the ci-jobs-trigger
field.
* forge/laminar.scm (<forge-laminar-job>): Add this-forge-laminar-job
accessor and export it.
| Arun Isaac |
2022-02-28 | manifest: Add manifest.•••* manifest.scm: New file.
| Arun Isaac |
2022-02-28 | gitignore: Add gitignore.•••* .gitignore: New file.
| Arun Isaac |
2022-02-28 | doc: Add manual.•••* Makefile (GUILD, SKRIBILO, sources, doc_skribilo_config,
doc_skribilo_config_go, doc_sources, doc_html): New variables.
(%.go, html, $(doc_html), website/manual/dev/en, clean): New targets.
(website): Depend on website/manual/dev/en.
(.PHONY): Add html and clean targets.
* doc/forge.skb, doc/skribilo.scm: New files.
| Arun Isaac |
2022-02-21 | README: Fix typo replacing guile-forge with guix-forge.•••* README.org (Philosophy): Fix typo replacing guile-forge with
guix-forge.
| Arun Isaac |
2022-02-18 | forge: Expand comment on grouping jobs in laminar.•••* forge/forge.scm (forge-service-type): Expand comment stating that
jobs are grouped by project.
| Arun Isaac |
2022-02-18 | forge: Allow extension of forge-service-type.•••* forge/forge.scm (forge-service-type): Allow extension of
forge-service-type.
| Arun Isaac |
2022-02-18 | forge: Shorten git download error message.•••* forge/build/git.scm (download-git-to-store): Remove git-fetch:
prefix in error message.
| Arun Isaac |
2022-02-10 | forge: Import (forge utils) for with-packages.•••* forge/forge.scm: Import (forge utils).
| Arun Isaac |
2022-02-10 | forge: Print current commit before running CI job.•••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.
| Arun Isaac |
2022-02-09 | forge: Implement our own git downloader.•••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.
| Arun Isaac |
2022-02-09 | forge: Ungexp reason argument.•••* forge/forge.scm (ci-jobs-trigger-gexp): Ungexp reason argument.
| Arun Isaac |
2022-02-09 | forge: Set LAMINAR_REASON.•••* forge/forge.scm (ci-jobs-trigger-gexp): Accept #:reason keyword
argument and set LAMINAR_REASON.
(forge-activation, forge-service-type): Pass #:reason keyword
argument.
| Arun Isaac |
2022-02-09 | forge: Pass <forge-laminar-job> objects to ci-jobs-trigger-gexp.•••* forge/forge.scm (ci-jobs-trigger-gexp): Accept <forge-laminar-job>
objects.
(forge-activation, forge-service-type): Pass <forge-laminar-job>
objects.
| Arun Isaac |
2022-02-09 | 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.
| Arun Isaac |
2022-02-09 | forge: Add webhook service.•••* forge/webhook.scm: New file.
| Arun Isaac |
2022-02-09 | forge: Return ci-jobs-trigger as G-expression.•••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.
| Arun Isaac |
2022-02-09 | forge: Introduce ci-jobs-trigger field.•••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.
| Arun Isaac |
2022-02-09 | forge: Rename post-receive-hook to ci-jobs-trigger-script.•••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.
| Arun Isaac |
2022-02-08 | forge: Provide build-side code to download git repositories.•••* forge/build/git.scm: New file.
| Arun Isaac |
2022-02-08 | forge: Match only exact matches with group regex.•••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.
| Arun Isaac |
2022-02-08 | forge: Support explicit specification of Guix daemon URI.•••* 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.
| Arun Isaac |
2022-02-08 | forge: Add derivation jobs to be executed by the Guix daemon.•••* 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.
| Arun Isaac |
2022-02-07 | forge: Add repository branch field to forge-project-configuration.•••* forge/forge.scm (<forge-project-configuration>)[repository-branch]:
New field.
Export forge-project-configuration-repository-branch.
| Arun Isaac |
2022-01-24 | forge: Add with-packages.•••with-packages allows for easy creation of G-expressions where a list
of specified packages are available. It is to G-expressions what `guix
shell' is to the shell. with-packages is frequently used in the
definition of CI jobs.
* forge/utils.scm: New file.
| Arun Isaac |
2022-01-24 | forge: Bump copyright year.•••I forgot to bump the copyright year in an earlier commit.
* forge/forge.scm: Bump copyright year.
| Arun Isaac |
2022-01-21 | forge: Ensure laminar configuration directory exists.•••* forge/laminar.scm (forge-laminar-activation): Create laminar
configuration directory if it does not exist.
| Arun Isaac |
2022-01-21 | forge: Make user field of <forge-project-configuration> optional.•••* forge/forge.scm (<forge-project-configuration>)[user]: Set default
value to #f.
| Arun Isaac |
2022-01-09 | forge: Rename guix-laminar-* to forge-laminar-*.•••* 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.
| Arun Isaac |
2022-01-09 | forge: Import (gnu packages ci).•••(gnu packages ci) is required for the laminar package.
* forge/forge.scm: Import (gnu packages ci).
| Arun Isaac |
2022-01-08 | website: Add website.•••* Makefile, build-aux/build-home-page.el, website/style.css: New
files.
| Arun Isaac |
2022-01-08 | README: Update channel introduction commit.•••The previous commit fixed an error in .guix-authorizations, and thus
pushed back the channel introduction commit.
* README.org (Installation): Update channel introduction commit.
| Arun Isaac |
2022-01-08 | guix-authorizations: Parenthesize keys correctly.•••* .guix-authorizations: Surround keys in parentheses.
| Arun Isaac |
2021-12-22 | README: Add installation instructions.•••* README.org (Installation): New section.
| Arun Isaac |
2021-12-22 | guix-authorizations: Add arunisaac's key.•••* .guix-authorizations: New file.
| Arun Isaac |
2021-12-21 | COPYING: Add GPLv3 license.•••* COPYING: New file.
| Arun Isaac |
2021-12-21 | README: Add README.•••* README.org: New file.
| Arun Isaac |
2021-12-21 | Initial commit | Arun Isaac |