From 32950fc846e1193769a378a1c277eeb02e5a7f9c Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 11 Dec 2015 14:01:35 +0300 Subject: emacs: Add Hydra interface. * emacs/guix-utils.el (guix-hexify, guix-number->bool): New procedures. (guix-while-null): New macro. * emacs/guix-hydra.el: New file. * emacs/guix-hydra-build.el: New file. * emacs/guix-hydra-jobset.el: New file. * emacs.am (ELFILES): Add them. * doc/emacs.texi (Emacs Hydra): New node. (Emacs Interface): Add it. * doc/guix.texi (Top): Add it. (Substitutes): Mention Emacs interface. --- doc/emacs.texi | 39 +++++++++++++++++++++++++++++++++++++++ doc/guix.texi | 5 ++++- 2 files changed, 43 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/emacs.texi b/doc/emacs.texi index 6b989a976d..c4bda24408 100644 --- a/doc/emacs.texi +++ b/doc/emacs.texi @@ -14,6 +14,7 @@ Guix convenient and fun. * Build Log Mode: Emacs Build Log. Highlighting Guix build logs. * Completions: Emacs Completions. Completing @command{guix} shell command. * Development: Emacs Development. Tools for Guix developers. +* Hydra: Emacs Hydra. Interface for Guix build farm. @end menu @@ -741,3 +742,41 @@ evaluation will be finished in the REPL. Alternatively, to avoid this limitation, you may just run another Geiser REPL, and while something is being evaluated in the previous REPL, you can continue editing a scheme file with the help of the current one. + + +@node Emacs Hydra +@section Hydra + +The continuous integration server at @code{hydra.gnu.org} builds all +the distribution packages on the supported architectures and serves +them as substitutes (@pxref{Substitutes}). Continuous integration is +currently orchestrated by @uref{https://nixos.org/hydra/, Hydra}. + +This section describes an Emacs interface to query Hydra to know the +build status of specific packages, discover recent and ongoing builds, +view build logs, and so on. This interface is mostly the same as the +``list''/``info'' interface for displaying packages and generations +(@pxref{Emacs Package Management}). + +The following commands are available: + +@table @kbd + +@item M-x guix-hydra-latest-builds +Display latest failed or successful builds (you will be prompted for a +number of builds). With @kbd{C-u}, you will also be prompted for other +parameters (project, jobset, job and system). + +@item M-x guix-hydra-queued-builds +Display scheduled or currently running builds (you will be prompted for +a number of builds). + +@item M-x guix-hydra-jobsets +Display available jobsets (you will be prompted for a project). + +@end table + +In a list of builds you can press @kbd{L} key to display a build log of +the current build. Also both a list of builds and a list of jobsets +provide @kbd{B} key to display latest builds of the current job or +jobset (don't forget about @kbd{C-u}). diff --git a/doc/guix.texi b/doc/guix.texi index 7fac99ca27..f155fbe818 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -116,6 +116,7 @@ Emacs Interface * Build Log Mode: Emacs Build Log. Highlighting Guix build logs. * Completions: Emacs Completions. Completing @command{guix} shell command. * Development: Emacs Development. Tools for Guix developers. +* Hydra: Emacs Hydra. Interface for Guix build farm. Programming Interface @@ -1585,7 +1586,9 @@ also result from derivation builds, can be available as substitutes. The @code{hydra.gnu.org} server is a front-end to a build farm that builds packages from the GNU distribution continuously for some -architectures, and makes them available as substitutes. This is the +architectures, and makes them available as substitutes (@pxref{Emacs +Hydra}, for information on how to query the continuous integration +server). This is the default source of substitutes; it can be overridden by passing the @option{--substitute-urls} option either to @command{guix-daemon} (@pxref{daemon-substitute-urls,, @code{guix-daemon --substitute-urls}}) -- cgit v1.2.3