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 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 - name: package-lint run: eask lint package - name: checkdoc run: eask lint checkdoc - name: elisp-lint 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