name: CI on: push: branches: [main] tags: ['v*'] pull_request: branches: [main] jobs: test: name: Test (Emacs ${{ matrix.emacs_version }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: emacs_version: ['27.1', '28.2', '29.4', '30.1'] steps: - uses: actions/checkout@v4 - name: Set up Emacs uses: jcs090218/setup-emacs@master with: version: ${{ matrix.emacs_version }} - name: Set up Eask uses: emacs-eask/setup-eask@master with: version: 'snapshot' - name: Install dependencies run: eask install-deps --dev - name: Byte-compile (warnings are errors) run: make compile - name: Run full test suite run: make test-all lint: name: Lint (advisory) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Emacs uses: jcs090218/setup-emacs@master with: version: '29.4' - name: Set up Eask uses: emacs-eask/setup-eask@master with: version: 'snapshot' - name: Install dependencies run: eask install-deps --dev # Lint output is informational while the MELPA-prep backlog is being # worked through. Tighten to required once that backlog is clear. - name: package-lint continue-on-error: true run: eask lint package - name: checkdoc continue-on-error: true run: eask lint checkdoc - name: elisp-lint continue-on-error: true run: make lint coverage: name: Coverage runs-on: ubuntu-latest needs: test steps: - uses: actions/checkout@v4 - name: Set up Emacs uses: jcs090218/setup-emacs@master with: version: '29.4' - name: Set up Eask uses: emacs-eask/setup-eask@master with: version: 'snapshot' - name: Install dependencies run: eask install-deps --dev - name: Generate coverage report run: make coverage - name: Upload to Coveralls uses: coverallsapp/github-action@v2 with: file: .coverage/coveralls.json format: coveralls