diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ce8bf6e..73d024d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,11 +14,11 @@ 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: @@ -26,7 +26,13 @@ jobs: - 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 @@ -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 diff --git a/Keg b/Keg index 5d4cbbd..2e835f6 100644 --- a/Keg +++ b/Keg @@ -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 diff --git a/README.org b/README.org index 84158d1..fae5536 100644 --- a/README.org +++ b/README.org @@ -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: diff --git a/oqa.el b/oqa.el index cf47458..35889dd 100644 --- a/oqa.el +++ b/oqa.el @@ -1,4 +1,4 @@ -;;; 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 @@ -6,7 +6,7 @@ ;; 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 diff --git a/test/fixtures/autoinst-log.txt b/test/fixtures/autoinst-log.txt new file mode 100644 index 0000000..e62c262 --- /dev/null +++ b/test/fixtures/autoinst-log.txt @@ -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 \ No newline at end of file