zuul
- Description
- Interface to Zuul
- Latest
- zuul-0.4.0.tar (.sig), 2024-Apr-24, 110 KiB
- Maintainer
- zuul.el Development <~niklaseklund/[email protected]>
- Atom feed
- zuul.xml
- Website
- https://sr.ht/~niklaseklund/zuul.el
- Browse ELPA's repository
- CGit or Gitweb
- Badge
To install this package from Emacs, use package-install
or list-packages
.
Full description
zuul.el
Introduction
Browse Zuul build outputs from Emacs. The zuul.el
package provides functionality to communicate with Zuul through its Zuul REST API.
The zuul-log-mode
major mode makes it as comfortable to browse a build log as it would be to navigate a local compilation. The package implements a custom filename parser for errors in the logs which allows Emacs to open the correct project file when an error is encountered in the log, even though the absolute path may not be found on the local machine.
Configuration
A minimal use-package
configuration.
emacs-lisp
(use-package zuul
:custom ((zuul-base-url "https://base.url.to.zuul.net")
(zuul-tenant "tenant1")
(zuul-tenant-configs
'((:name "tenant1"
:project-roots (("foo" . "~/git/foo-repo")
("baz" . "~/git/baz-repo")))
(:name "tenant2"
:project-roots (("bar" . "~/git/bar-repo")))))))
Usage
The package doesn't provide any commands, except those used by the zuul-log-mode
. Other packages, or users themselves, needs to implement commands because retrieving builds or buildsets requires knowledge that might not be general. An example of a package that integrates with zuul.el
is egerrit-zuul. It provides the command egerrit-zuul-open-build-log
which can be used as inspiration.
The functions zuul-get-builds
and zuul-get-buildsets
needs to be called to retrieve builds and buildsets from Zuul. Both functions accepts multiple input parameters specified as keys in the call. The simplest example would be to use a change
number.
``` emacs-lisp ;; For buildsets (zuul-get-buildsets :change "300203")
;; For builds (zuul-get-builds :change "300203") ```
A query to retrieve builds or buildsets can be provided as input to the zuul-open-build-log
in order to view a specific build log.
``` emacs-lisp ;; Query provided as a list (zuul-open-build-log '(zuul-get-buildsets :change "300203"))
;; Query provided as a function (zuul-open-build-log (lambda () '(zuul-get-builds :change "300203"))) ```
Zuul log mode
The major mode zuul-log-mode
provides the following commands.
Name | Binding | Description |
---|---|---|
zuul-switch-build | C-c C-b | Switch to another build |
zuul-switch-buildset | C-c C-s | Switch to a build from a specific buildset |
zuul-run-build-command | C-c C-r | Run build command from build log |
zuul-previous-command | C-c C-p | Go to previous command in build log |
zuul-next-command | C-c C-n | Go to next command in build log |
zuul-open-build-in-browser | C-c C-o | Open build in browser |
zuul-previous-build | C-c [ | Switch to previous build |
zuul-next-build | C-c ] | Switch to next build |
zuul-quit-build | C-c C-q | Quit and delete build log buffers |
It also integrates with the following built in features:
- imenu
: navigate to beginning of tasks in the build log
- eldoc
: echo descriptive information about where in the log point are
Remote support
The zuul.el
package supports Connection Local Variables which allows the user to customize the zuul-tenant-configs
variable when running on a remote host. In this example zuul-tenant-configs
are configured the same for all remote hosts.
``` emacs-lisp (connection-local-set-profile-variables 'remote-zuul '((zuul-tenant-configs . ((:name "foo" :project-roots (("bar" . "~/other_location/bar")))))))
(connection-local-set-profiles '(:application tramp :protocol "ssh") 'remote-zuul) ```
Contributions
The package is part of GNU ELPA which means that if you want to contribute you must have a copyright assignment.
Old versions
zuul-0.3.tar.lz | 2022-Aug-31 | 22.1 KiB |
News
1. Develop
2. Version 0.4.0 (2022-09-01)
- Reduce the required Emacs version from 28.1 to 27.1
- Adapt semantic versioning
3. Version 0.3 (2022-08-30)
- Make package is available on ELPA
- Improve package quality by implementing suggestions from tools and reviewers
4. Version 0.2 (2022-08-25)
- Simplify for users/packages to utilize
zuul
- Add commands to navigate between previous and next command prompt in logs
- Highlight line with command and add prompt to make it reminiscent to a shell
- Update log buffer to contain the executed commands
5. Version 0.1 (2022-07-19)
- Initial release