From b510e421b52db5886fb5652c1d3653585f81c7e9 Mon Sep 17 00:00:00 2001 From: Guilherme Thomazi Bonicontro Date: Sun, 10 May 2026 16:31:20 +0200 Subject: [PATCH] feat: add pull request workflow for automated Emacs tests --- .github/workflows/tests.yml | 37 +++++++++++++++++++++++++++++++++++++ tests/run-tests.el | 20 ++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 .github/workflows/tests.yml create mode 100644 tests/run-tests.el diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..7e714fd --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,37 @@ +name: tests + +on: + pull_request: + types: + - opened + - reopened + - synchronize + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + emacs_version: + - "29.1" + - "30.1" + + steps: + - uses: actions/checkout@v6 + + - name: Set up Emacs + uses: purcell/setup-emacs@master + with: + version: ${{ matrix.emacs_version }} + + - name: Install ripgrep + run: sudo apt-get update && sudo apt-get install -y ripgrep + + - name: Show tool versions + run: | + emacs --version + rg --version + + - name: Run all tests + run: emacs --batch -Q --eval "(setq load-prefer-newer t)" -L . -l tests/run-tests.el diff --git a/tests/run-tests.el b/tests/run-tests.el new file mode 100644 index 0000000..7af3e35 --- /dev/null +++ b/tests/run-tests.el @@ -0,0 +1,20 @@ +;;; run-tests.el --- Load and run all Grove tests -*- lexical-binding: t -*- + +;; Copyright 2026 Guilherme Thomazi Bonicontro + +;;; Commentary: + +;; Loads every *-test.el file in this directory, then runs the full ERT suite. + +;;; Code: + +(require 'ert) + +(let* ((this-file (or load-file-name buffer-file-name)) + (tests-directory (file-name-directory this-file))) + (dolist (file (directory-files tests-directory t "-test\\.el\\'")) + (load file nil 'nomessage))) + +(ert-run-tests-batch-and-exit) + +;;; run-tests.el ends here