aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2022-02-28doc: 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-28forge: 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-28forge: 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-28forge: 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-28forge: 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-28forge: 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-28forge: Export forge-project-configuration-name.•••* forge/forge.scm: Export forge-project-configuration-name. Arun Isaac
2022-02-28forge: 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-28manifest: Add manifest.•••* manifest.scm: New file. Arun Isaac
2022-02-28gitignore: Add gitignore.•••* .gitignore: New file. Arun Isaac
2022-02-28doc: 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-21README: Fix typo replacing guile-forge with guix-forge.•••* README.org (Philosophy): Fix typo replacing guile-forge with guix-forge. Arun Isaac
2022-02-18forge: 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-18forge: Allow extension of forge-service-type.•••* forge/forge.scm (forge-service-type): Allow extension of forge-service-type. Arun Isaac
2022-02-18forge: Shorten git download error message.•••* forge/build/git.scm (download-git-to-store): Remove git-fetch: prefix in error message. Arun Isaac
2022-02-10forge: Import (forge utils) for with-packages.•••* forge/forge.scm: Import (forge utils). Arun Isaac
2022-02-10forge: 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-09forge: 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-09forge: Ungexp reason argument.•••* forge/forge.scm (ci-jobs-trigger-gexp): Ungexp reason argument. Arun Isaac
2022-02-09forge: 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-09forge: 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-09forge: 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-09forge: Add webhook service.•••* forge/webhook.scm: New file. Arun Isaac
2022-02-09forge: 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-09forge: 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-09forge: 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-08forge: Provide build-side code to download git repositories.•••* forge/build/git.scm: New file. Arun Isaac
2022-02-08forge: 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-08forge: 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-08forge: 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-07forge: 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-24forge: 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-24forge: Bump copyright year.•••I forgot to bump the copyright year in an earlier commit. * forge/forge.scm: Bump copyright year. Arun Isaac
2022-01-21forge: Ensure laminar configuration directory exists.•••* forge/laminar.scm (forge-laminar-activation): Create laminar configuration directory if it does not exist. Arun Isaac
2022-01-21forge: Make user field of <forge-project-configuration> optional.•••* forge/forge.scm (<forge-project-configuration>)[user]: Set default value to #f. Arun Isaac
2022-01-09forge: 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-09forge: Import (gnu packages ci).•••(gnu packages ci) is required for the laminar package. * forge/forge.scm: Import (gnu packages ci). Arun Isaac
2022-01-08website: Add website.•••* Makefile, build-aux/build-home-page.el, website/style.css: New files. Arun Isaac
2022-01-08README: 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-08guix-authorizations: Parenthesize keys correctly.•••* .guix-authorizations: Surround keys in parentheses. Arun Isaac
2021-12-22README: Add installation instructions.•••* README.org (Installation): New section. Arun Isaac
2021-12-22guix-authorizations: Add arunisaac's key.•••* .guix-authorizations: New file. Arun Isaac
2021-12-21COPYING: Add GPLv3 license.•••* COPYING: New file. Arun Isaac
2021-12-21README: Add README.•••* README.org: New file. Arun Isaac
2021-12-21Initial commitArun Isaac