<feed xmlns='http://www.w3.org/2005/Atom'>
<title>org-drill/scripts, branch main</title>
<subtitle>Spaced-repetition flashcards for Org Mode
</subtitle>
<id>https://git.cjennings.net/org-drill/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/org-drill/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/'/>
<updated>2026-05-05T15:15:00+00:00</updated>
<entry>
<title>ci: add GitHub Actions workflow with test matrix, lint, and coverage</title>
<updated>2026-05-05T15:15:00+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T15:15:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=be96465271012b86010b9dee04abea8585dc177c'/>
<id>urn:sha1:be96465271012b86010b9dee04abea8585dc177c</id>
<content type='text'>
Three jobs:

- test: matrix across Emacs 28.2 / 29.4 / snapshot.  Sets up Emacs
  via jcs090218/setup-emacs and Cask via cask/setup-cask, then
  runs make setup (with 3 retries to absorb MELPA flakes) and
  make test-unit.  Org 9.6 ships built-in with Emacs 29; on 28
  Cask pulls it from MELPA per our depends-on declaration.
- lint: Emacs 29.4 only, runs make lint (informational), then
  make compile and make validate-parens.
- coverage: same Emacs version, runs make coverage, prints a
  per-file summary via scripts/coverage-summary.py (copied from
  emacs-wttrin), uploads .coverage/simplecov.json as a workflow
  artifact, and sends results to Coveralls via continue-on-error
  so CI doesn't fail when COVERALLS_REPO_TOKEN isn't set yet.

The README badge URL points at this workflow file (ci.yml) so it
auto-populates on the next push to main.

Closes the [#B] GitHub Actions TODO.  After this lands, the
remaining setup is enabling the org-drill repo on coveralls.io
and adding COVERALLS_REPO_TOKEN as a GitHub secret so the
upload step actually publishes.
</content>
</entry>
</feed>
