aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/ci.yml61
1 files changed, 61 insertions, 0 deletions
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