diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-31 07:45:09 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-31 07:45:09 -0500 |
| commit | a2515431213793656f9907e81fba2f73f535fd70 (patch) | |
| tree | a59777469cf5e498ff077b5c36313da5535b7b16 /.github/workflows/ci.yml | |
| parent | b2710e21202a2f2f7542d11d19f0cd5d20b5ebf2 (diff) | |
| download | pearl-a2515431213793656f9907e81fba2f73f535fd70.tar.gz pearl-a2515431213793656f9907e81fba2f73f535fd70.zip | |
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.
Diffstat (limited to '.github/workflows/ci.yml')
| -rw-r--r-- | .github/workflows/ci.yml | 61 |
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 |
