aboutsummaryrefslogtreecommitdiff
path: root/guix/forge
AgeCommit message (Collapse)Author
2024-04-11gunicorn: Support unstructured extra CLI arguments.Frederick M. Muriithi
The most useful options (e.g. "--workers", "--timeout", "--env") have dedicated slots in the <gunicorn-app> structure. These, however, are not the only options available to pass to gunicorn at startup. This commit allows us to pass in a list of any extra CLI options we want on the CLI. * guix/forge/gunicorn.scm (<gunicorn-app>)[extra-cli-arguments]: New field. (gunicorn-shepherd-services): Use extra-cli-arguments field. * doc/forge.skb (Services)[Specialized application deployment services]{gunicorn service}<gunicorn-app>: Document extra-cli-arguments field. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2024-01-12forge: Deprecate derivation-job-gexp.Arun Isaac
* guix/forge/forge.scm: Import (guix deprecation). (derivation-job-gexp): Deprecate with guix-channel-job-gexp.
2024-01-11forge: Generalize guix-channel-job-gexp to non-package objects.Arun Isaac
* guix/forge/forge.scm (guix-channel-job-gexp): Use lower-object instead of package->derivation.
2024-01-11forge: Allow private variables to be built.Arun Isaac
Allowing only exported variables to be built is an unnecessary source of errors and user confusion. * guix/forge/forge.scm (guix-channel-job-gexp): Allow private variables to be built.
2024-01-11forge: Return list of built store paths from guix-channel-job-gexp.Arun Isaac
* guix/forge/forge.scm (guix-channel-job-gexp): Return list of built store paths from guix-channel-job-gexp.
2024-01-09forge: Limit number of parallel CI job runs.Arun Isaac
* guix/forge/forge.scm (<forge-project>)[parallel-ci-job-runs]: New field. * guix/forge/forge.scm (forge-ci-jobs): Add project context to CI jobs. (forge-ci-job-contexts): New function. (forge-ci-jobs-and-groups): Rename to forge-ci-jobs+contexts+groups. Also return <forge-laminar-context> objects. (forge-service-type): Call forge-ci-jobs+contexts+groups instead of forge-ci-jobs-and-groups. * doc/forge.skb (Reference)[<forge-project>]{parallel-ci-job-runs}: Document it.
2024-01-09laminar: Allow associating contexts to jobs.Arun Isaac
* guix/forge/laminar.scm (<forge-laminar-job>)[contexts]: New field. * guix/forge/laminar.scm (laminar-jobs): Create job configuration file specifying contexts. * doc/forge.skb (Reference)[<forge-laminar-job>]{contexts}: Document it.
2024-01-09laminar: Export forge-laminar-configuration-groups.Arun Isaac
* guix/forge/laminar.scm: Export forge-laminar-configuration-groups.
2024-01-09laminar: Allow creation of job contexts.Arun Isaac
* guix/forge/laminar.scm (<forge-laminar-configuration>)[contexts]: New field. * guix/forge/laminar.scm (<forge-laminar-context>): New record type. (laminar-contexts): New function. (forge-laminar-activation): Configure contexts in configuration directory. (forge-laminar-service-type): Allow extension with contexts.
2024-01-09laminar: Use switch-symlinks, instead of delete-file and symlink.Arun Isaac
* guix/forge/laminar.scm (forge-laminar-activation): Use switch-symlinks, instead of delete-file and symlink.
2024-01-09laminar: Remove unused SRFI-26 import.Arun Isaac
* guix/forge/laminar.scm (forge-laminar-activation): Remove unused SRFI-26 import.
2024-01-09laminar: Move groups and jobs constructors into separate functions.Arun Isaac
* guix/forge/laminar.scm (laminar-groups, laminar-jobs): New functions. (forge-laminar-activation): Use laminar-groups and laminar-jobs.
2024-01-08gunicorn: Support worker timeout parameter.Arun Isaac
* guix/forge/gunicorn.scm (<gunicorn-app>)[timeout]: New field. * guix/forge/gunicorn.scm (gunicorn-shepherd-services): Pass --timeout parameter. * doc/forge.skb (Reference)[Specialized application deployment services]{gunicorn service}<gunicorn-app>: Document timeout field.
2023-12-22gunicorn: Provision app-specific symbol.Arun Isaac
Provisioning the 'gunicorn symbol is problematic when there are multiple gunicorn apps running. * guix/forge/gunicorn.scm (gunicorn-shepherd-services): Provision app-specific symbol.
2023-12-22gunicorn: Use python, not python-minimal, to construct app profile.Arun Isaac
* guix/forge/gunicorn.scm: Import python instead of python-minimal. (gunicorn-shepherd-services): Use python, not python-minimal, to construct app profile.
2023-12-22fcgiwrap: Use <environment-variable> records.Arun Isaac
* guix/forge/fcgiwrap.scm: Import (forge environment). (fcgiwrap-shepherd-services): Use <environment-variable> record. * doc/forge.skb (Services)[Specialized application deployment services]{fcgiwrap service}: Document it. * guix/forge/cgit.scm: Import (forge environment). (cgit-fcgiwrap-instance): Use <environment-variable> record.
2023-12-22gunicorn: Use <environment-variable> records.Arun Isaac
* guix/forge/gunicorn.scm: Import (forge environment). (gunicorn-shepherd-services): Use <environment-variable> record. * doc/forge.skb (Services)[Specialized application deployment services]{gunicorn service}: Document it. * guix/forge/klaus.scm: Import (forge environment). (klaus-gunicorn-app): Use <environment-variable> record.
2023-12-22environment: Introduce record type for environment variables.Arun Isaac
* guix/forge/environment.scm: New file. * doc/forge.skb (Reference)[<environment-variable>]: Document it.
2023-12-20klaus: Make klaus package a configurable keyword argument.Arun Isaac
* guix/forge/klaus.scm (klaus-gunicorn-app): Make klaus package a configurable keyword argument.
2023-12-19forge: Allow building specific variables in channels.Arun Isaac
* guix/forge/forge.scm (<variable-specification>): New type. (guix-channel-job-gexp): Accept #:variables argument specifying what to build.
2023-12-19tissue: Explain permissions set on the tissue state directory.Arun Isaac
* guix/forge/tissue.scm (tissue-activation): Explains permissions set on the tissue state directory.
2023-12-19acme: Combine deploy hooks into a file-like object, not a raw G-exp.Arun Isaac
* guix/forge/acme.scm (acme-service-type): Combine deploy hooks into a file-like object, not a raw G-expression.
2023-10-04forge: Set repository ownership only when user field is set.Arun Isaac
* guix/forge/forge.scm (forge-activation): Set repository ownership only when user field is set.
2023-09-18acme: Import (ice-9 match) in acme-renew G-expression.Arun Isaac
* guix/forge/acme.scm (acme-renew): Import (ice-9 match) in G-expression.
2023-08-12cgit: Render org mode README files.Arun Isaac
* guix/forge/cgit.scm: Import emacs-minimal from (gnu packages emacs). (%cgit-readme): Add README.org. (about-filter-gexp): Render org mode README files. * guix/forge/org2html.el: New file. * doc/forge.skb (Services)[Git web viewers]{cgit service}: Document support for org mode README files.
2023-08-10forge: Import specific modules, not all of (gnu).Arun Isaac
* guix/forge/forge.scm: Import (gnu services) and (guix gexp) instead of (gnu).
2023-08-09gunicorn: Support <forge-host-socket> sockets.Arun Isaac
* guix/forge/gunicorn.scm (socket->gunicorn-bind): Support <forge-host-socket> sockets. * doc/forge.skb (Reference): Document it.
2023-08-09cgit: Add cgit service.Arun Isaac
* guix/forge/cgit.scm: New file. * doc/forge.skb (Services)[Git web viewers]: New section.
2023-08-09fcgiwrap: Add fcgiwrap service.Arun Isaac
* guix/forge/fcgiwrap.scm: New file. * doc/forge.skb (Services)[Specialized application deployment services]: New section.
2023-08-09nginx: Add forge-nginx service.Arun Isaac
* guix/forge/nginx.scm, doc/snippets/acme-restart-nginx-sudoers.scm: New files. * doc/forge.skb (Services)[forge nginx service]: Document the forge-nginx service.
2023-08-09acme: Add ACME service.Arun Isaac
* guix/forge/acme.scm: Import shadow from (gnu packages admin), nss-certs from (gnu packages certs), (gnu services), (gnu services mcron), (gnu system shadow), (guix diagnostics), (guix i18n), (guix profiles), (guix records), (srfi srfi-1) and (ice-9 match). (%letsencrypt-production-url, %letsencrypt-staging-url): New variables. (<acme-configuration>, <acme-rsa-key>, <acme-ecdsa-key>, <acme-certificate>): New record types. (acme-http-01-webroot-authorization-hook, acme-http-01-webroot-cleanup-hook): New public functions. (acme-key-length, uacme-hook, acme-activation, acme-renew, acme-helper, acme-helper-sudo-wrapper, acme-special-files, acme-cron-job, raise-to-top): New functions. (%acme-accounts, acme-service-type): New variables. * doc/forge.skb (Services)[ACME service]: New section.
2023-08-09acme: Add uacme.Arun Isaac
* guix/forge/acme.scm: New file.
2023-08-08socket: Introduce <forge-host-socket>.Arun Isaac
* guix/forge/socket.scm (<forge-host-socket>): New record type. * doc/forge.skb (Reference): Document <forge-host-socket>.
2023-07-28gunicorn: Squeeze adjacent strings together.Arun Isaac
* guix/forge/gunicorn.scm (socket->gunicorn-bind): Squeeze adjacent strings "]" and ":" into one.
2023-07-28gunicorn: Mention app name in shepherd service documentation.Arun Isaac
* guix/forge/gunicorn.scm (gunicorn-shepherd-services): Mention app name in documentation field.
2023-07-27klaus: Mirror default socket used by gunicorn service.Arun Isaac
* guix/forge/klaus.scm (klaus-gunicorn-app): Change default socket to /var/run/gunicorn/klaus/socket.
2023-07-27gunicorn: Set default socket to Unix socket.Arun Isaac
* guix/forge/gunicorn.scm (<gunicorn-app>): Add this-gunicorn-app self-reference. [sockets]: Make field thunked. Set default to Unix socket.
2023-07-26klaus: Serve klaus on a Unix socket by default.Arun Isaac
* guix/forge/klaus.scm: Import (forge socket). (klaus-gunicorn-app): Make sockets a keyword argument with a singleton list of Unix sockets as the default.
2023-07-25klaus: Add helper function to create klaus gunicorn app.Arun Isaac
* guix/forge/klaus.scm: Import (forge gunicorn) and (gnu system file-systems). (klaus-gunicorn-app): New public function. * doc/forge.skb (Introduction): Advertise klaus support. (Reference): Document klaus-gunicorn-app.
2023-07-25gunicorn: Add gunicorn service.Arun Isaac
* guix/forge/gunicorn.scm: New file. * doc/forge.skb (Reference): Document <gunicorn-configuration> and <gunicorn-app>.
2023-07-25klaus: Add python-klaus.Arun Isaac
* guix/forge/klaus.scm: Import python-pytest from (gnu packages check); python-flask and python-werkzeug from (gnu packages python-web); python-dulwich, python-humanize and python-pygments from (gnu packages python-xyz). (python-klaus): New variable.
2023-07-25klaus: Add git-without-safe-directory-check.Arun Isaac
* guix/forge/klaus.scm: Import git-minimal from (gnu packages version-control), (guix gexp) and (guix utils). (git-without-safe-directory-check): New variable.
2023-07-22klaus: Add python-httpauth.Arun Isaac
* guix/forge/klaus.scm: New file.
2023-07-08forge: Show verbose build logs in guix-channel-job-gexp.Arun Isaac
* guix/forge/forge.scm (guix-channel-job-gexp): Add #:verbose? argument.
2023-07-05forge: Set TLS certificate paths in guix-channel-job-gexp.Arun Isaac
* guix/forge/forge.scm: Import (guix profiles). (guix-channel-job-gexp): Set TLS certificate paths.
2023-07-05Do not refer to (forge web).Arun Isaac
This reference was accidentally committed in the previous commit. * guix/forge/forge.scm: Do not import (forge web).
2023-07-05forge: Introduce guix-channel-job-gexp.Arun Isaac
* guix/forge/forge.scm: Import guile-bytestructures from (gnu packages guile), guix from (gnu packages package-management), (guix channels), guile-git from (forge guile-git), (forge tissue) and (forge web). (guix-channel-job-gexp): New public function.
2023-07-05tissue: Use latest tissue with a patched libgit2.Arun Isaac
* guix/forge/guile-git.scm: New file. * guix/forge/tissue.scm: Import guile-git from (forge guile-git), (guix git-download) and (guix packages). Import tissue with a guix: prefix. (tissue): New public variable.
2023-07-04webhook: Export webhook package.Arun Isaac
* guix/forge/webhook.scm (webhook): Make public.
2023-03-18tissue: Use upstream Guix tissue package.Arun Isaac
* guix/forge/tissue.scm: Do not import (gnu packages autotools), (gnu packages compression), (gnu packages gettext), (gnu packages guile), (gnu packages guile-xyz), (gnu packages skribilo), (guix build-system gnu), (guix download), (guix git-download), (guix licenses) and (guix packages). (skribilo-latest, guile-xapian-latest, tissue): Delete variables.