Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 15 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,25 @@ jobs:
- ubuntu-latest
- macos-latest
emacs_version:
- '27.1'
- '27.2'
# 29.1 is skipped: package--reload-previously-loaded is broken there,
# so upgrading the built-in seq (pulled in by transient) dies with
# "Cannot open load file: seq-25". Fixed upstream in 29.2.
- '28.1'
- '28.2'
- '29.1'
- '29.2'
- 'snapshot'
steps:
- uses: actions/checkout@v3
- uses: purcell/setup-emacs@master
with:
version: ${{ matrix.emacs_version }}
- uses: conao3/setup-keg@master
# conao3/setup-keg is a node12 action; node12 is gone from the runners
# and has no arm64 macOS build, so it dies with spawn ENOEXEC. Install
# Keg from upstream directly instead.
- name: Install Keg
run: |
git clone --depth 1 https://github.com/conao3/keg.el.git "$HOME/keg"
echo "$HOME/keg/bin" >> "$GITHUB_PATH"

- run: keg install
- run: keg run test-all
Expand All @@ -41,6 +47,9 @@ jobs:
- uses: actions/checkout@v1
- uses: purcell/setup-emacs@master
with:
version: '27.2'
- uses: conao3/setup-keg@master
version: '28.1'
- name: Install Keg
run: |
git clone --depth 1 https://github.com/conao3/keg.el.git "$HOME/keg"
echo "$HOME/keg/bin" >> "$GITHUB_PATH"
- run: keg lint
2 changes: 1 addition & 1 deletion Keg
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
(let ((test-files (mapcar (lambda (file) (file-relative-name file "."))
(directory-files "test" t "\\.el$"))))
(keg-shell
`("keg" "emacs" "--batch" "-Q" "-L" "."
`("keg" "emacs" "--batch" "-Q" "-L" "." "-L" "test"
,@(mapcar (apply-partially #'concat "--load=") test-files)
"-f" "ert-run-tests-batch-and-exit"))))
(test-all
Expand Down
29 changes: 28 additions & 1 deletion README.org
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,34 @@ state-changing actions (restart / clone / trigger) shell out to your
installed =openqa-cli= / =openqa-clone-job=, which use the credentials in
=~/.config/openqa/client.conf=.

* Getting started
* Requirements

- Emacs 28.1 or newer. Emacs 29.1 specifically has an upstream
=package.el= bug that breaks upgrading the built-in =seq= (a =transient=
dependency) with "Cannot open load file: seq-25"; use 29.2 or newer.
- [[https://github.com/magit/transient][transient]], [[https://github.com/magnars/dash.el][dash]], [[https://github.com/magnars/s.el][s]]
- Optional, only for restart / clone / trigger: =openqa-cli= and
=openqa-clone-job= from the openQA client package, configured in
=~/.config/openqa/client.conf=

* Installation

Clone the repository and load it:

#+begin_src emacs-lisp
(add-to-list 'load-path "/path/to/oqa")
(require 'oqa)
#+end_src

Or with =use-package= and a local checkout:

#+begin_src emacs-lisp
(use-package oqa
:load-path "/path/to/oqa"
:commands (oqa))
#+end_src

* Usage

=M-x oqa= opens the job-groups view of the active instance (=o3=,
=openqa.opensuse.org=, by default). From there:
Expand Down
4 changes: 2 additions & 2 deletions oqa.el
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
;;; oqa.el --- OpenQA client for Emacs -*- lexical-binding: t; -*-
;;; oqa.el --- Drill-down client for OpenQA test results -*- lexical-binding: t; -*-

;; Copyright (C) 2022 Ioannis Bonatakis

;; Author: Ioannis Bonatakis <ybonatakis@suse.com>
;; Keywords: tools

;; Version: 0.1.0
;; Package-Requires: ((emacs "27.1") (transient "0.3.0") (dash "2.19.1") (s "1.12.0"))
;; Package-Requires: ((emacs "28.1") (transient "0.3.0") (dash "2.19.1") (s "1.12.0"))
;; URL: https://github.com/d3flex/oqa

;; This program is free software; you can redistribute it and/or modify
Expand Down
32 changes: 32 additions & 0 deletions test/fixtures/autoinst-log.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[2026-08-01T11:34:45.114897Z] [info] +++ setup notes +++
[2026-08-01T11:34:45.115065Z] [info] Running on openqaworker21:33 (Linux 6.12.0-160000.36-default #1 SMP PREEMPT_DYNAMIC Tue Jul 14 08:31:14 UTC 2026 (352acd0) x86_64)
[2026-08-01T11:34:45.118806Z] [debug] Found ASSET_256, caching agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso.sha256
[2026-08-01T11:34:45.120757Z] [info] Downloading agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso.sha256, request #890316 sent to Cache Service
[2026-08-01T11:34:55.238456Z] [info] Download of agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso.sha256 processed:
[info] [#890316] Cache size of "/var/lib/openqa/cache" is 398 GiB, with limit 400 GiB
[info] [#890316] Downloading "agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso.sha256" from "https://openqa.opensuse.org/tests/6137466/asset/other/agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso.sha256"
[info] [#890316] Content of "/var/lib/openqa/cache/openqa.opensuse.org/agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso.sha256" has not changed, updating last use

[2026-08-01T11:34:55.240122Z] [debug] Found HDD_1, caching opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G.qcow2
[2026-08-01T11:34:55.242031Z] [info] Downloading opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G.qcow2, request #890318 sent to Cache Service
[2026-08-01T11:35:05.356003Z] [info] Download of opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G.qcow2 processed:
[info] [#890318] Cache size of "/var/lib/openqa/cache" is 398 GiB, with limit 400 GiB
[info] [#890318] Downloading "opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G.qcow2" from "https://openqa.opensuse.org/tests/6137466/asset/hdd/opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G.qcow2"
[info] [#890318] Content of "/var/lib/openqa/cache/openqa.opensuse.org/opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G.qcow2" has not changed, updating last use

[2026-08-01T11:35:05.357657Z] [debug] Found ISO, caching agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso
[2026-08-01T11:35:05.360686Z] [info] Downloading agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso, request #890320 sent to Cache Service
[2026-08-01T11:35:15.480962Z] [info] Download of agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso processed:
[info] [#890320] Cache size of "/var/lib/openqa/cache" is 398 GiB, with limit 400 GiB
[info] [#890320] Downloading "agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso" from "https://openqa.opensuse.org/tests/6137466/asset/iso/agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso"
[info] [#890320] Content of "/var/lib/openqa/cache/openqa.opensuse.org/agama-installer.x86_64-23.0.0-openSUSE-Snapshot20260731.iso" has not changed, updating last use

[2026-08-01T11:35:15.482743Z] [debug] Found UEFI_PFLASH_VARS, caching opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G-uefi-vars.qcow2
[2026-08-01T11:35:15.484980Z] [info] Downloading opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G-uefi-vars.qcow2, request #890322 sent to Cache Service
[2026-08-01T11:35:20.561004Z] [info] Download of opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G-uefi-vars.qcow2 processed:
[info] [#890322] Cache size of "/var/lib/openqa/cache" is 398 GiB, with limit 400 GiB
[info] [#890322] Downloading "opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G-uefi-vars.qcow2" from "https://openqa.opensuse.org/tests/6137466/asset/hdd/opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G-uefi-vars.qcow2"
[info] [#890322] Content of "/var/lib/openqa/cache/openqa.opensuse.org/opensuse-Tumbleweed-x86_64-20260731-textmode-agama@uefi-3G-uefi-vars.qcow2" has not changed, updating last use

[2026-08-01T11:35:20.563322Z] [info] Rsync from 'rsync://openqa.opensuse.org/tests' to '/var/lib/openqa/cache/openqa.opensuse.org', request #890323 sent to Cache Service
[2026-08-01T11:35:25.633
Loading