aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
blob: 517c6c9837885e1b14b3135d0641bf269429382a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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