From a2515431213793656f9907e81fba2f73f535fd70 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 31 May 2026 07:45:09 -0500 Subject: ci: add GitHub Actions workflow There was no CI: the suite, byte-compile, and lint only ran when I ran them locally, so a regression could land on main unnoticed until the next manual run. This adds a workflow that runs make compile, make lint, and make test on every push to main and every PR, across Emacs 27.2 through 30.1 (27.1 is the package floor). An advisory snapshot job surfaces upcoming-Emacs breakage without blocking a merge. The README carries a status badge. --- .github/workflows/ci.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..517c6c9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,61 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + # 27.1 is the package floor (see Eask / Package-Requires); the rest + # track the supported releases. snapshot is advisory. + emacs-version: + - "27.2" + - "28.2" + - "29.4" + - "30.1" + steps: + - uses: actions/checkout@v4 + + - uses: purcell/setup-emacs@master + with: + version: ${{ matrix.emacs-version }} + + - uses: emacs-eask/setup-eask@master + with: + version: "snapshot" + + - name: Install dependencies + run: make setup + + - name: Byte-compile (warnings are errors) + run: make compile + + - name: Lint (elisp-lint + checkdoc) + run: make lint + + - name: Run tests + run: make test + + # Advisory run against Emacs snapshot: surfaces upcoming breakage without + # blocking a merge when the dev build churns. + snapshot: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v4 + - uses: purcell/setup-emacs@master + with: + version: "snapshot" + - uses: emacs-eask/setup-eask@master + with: + version: "snapshot" + - run: make setup + - run: make compile + - run: make lint + - run: make test -- cgit v1.2.3