name: test khoj.el

on:
  push:
    branches:
      - 'master'
    paths:
      - src/interface/emacs/*.el
      - src/interface/emacs/tests/*.el
      - .github/workflows/test_khoj_el.yml
  pull_request:
    branches:
      - 'master'
    paths:
      - src/interface/emacs/*.el
      - src/interface/emacs/tests/*.el
      - .github/workflows/test_khoj_el.yml

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        emacs_version:
          - 27.1
          - 27.2
          - 28.1
          - 28.2
          - snapshot
    steps:
      - uses: purcell/setup-emacs@master
        with:
          version: ${{ matrix.emacs_version }}
      - uses: actions/checkout@v3
      - name: 🧪 Test Khoj.el
        run: |
           # Run ERT tests on khoj.el
           emacs -batch \
           --eval "(progn \
                    (require 'package) \
                    (push '(\"melpa\" . \"https://melpa.org/packages/\") package-archives) \
                    (package-initialize) \
                    (unless package-archive-contents (package-refresh-contents)) \
                    (unless (package-installed-p 'transient) (package-install 'transient)) \
                    (unless (package-installed-p 'dash) (package-install 'dash)) \
                    (unless (package-installed-p 'org) (package-install 'org)) \
                   )" \
           -l ert \
           -l ./src/interface/emacs/khoj.el \
           -l ./src/interface/emacs/tests/khoj-tests.el \
           -f ert-run-tests-batch-and-exit