From 81b0822e56bd98405f1103d087aaaea901401fbd Mon Sep 17 00:00:00 2001 From: JenChieh Date: Thu, 22 May 2025 03:27:28 -0700 Subject: [PATCH] ci Setup CI builds with Eask --- .github/workflows/test.yml | 93 ++++++++++++++++++++++++++++---------- .gitignore | 2 + Eask | 45 ++++++++++++++++++ smartparens.el | 2 +- test/test-helper.el | 3 +- 5 files changed, 118 insertions(+), 27 deletions(-) create mode 100644 Eask diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e74e4324..6439e894 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,43 +1,88 @@ name: CI -on: [push] + +on: + push: + branches: + - master + pull_request: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + UNDERCOVER_CONFIG: "(\"smartparens.el\" \"smartparens-*.el\" (:report-format lcov) (:send-report nil))" jobs: - build: - runs-on: ubuntu-latest + test: + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental }} strategy: + fail-fast: false matrix: - emacs_version: - - '27.1' - - '27.2' - - '28.1' + os: + - ubuntu-latest + - macos-latest + - windows-latest + emacs-version: - '28.2' - - '29.1' - - '29.2' - - '29.3' - '29.4' + - '30.1' - 'snapshot' + experimental: [false] include: - - emacs_version: 'snapshot' - allow_failure: true + - os: ubuntu-latest + emacs-version: snapshot + experimental: true + - os: macos-latest + emacs-version: snapshot + experimental: true + - os: windows-latest + emacs-version: snapshot + experimental: true + steps: - uses: actions/checkout@v4 - - uses: purcell/setup-emacs@master + + - uses: jcs090218/setup-emacs@master with: - version: ${{ matrix.emacs_version }} + version: ${{ matrix.emacs-version }} + - uses: actions/setup-python@v5 - - uses: conao3/setup-cask@master - - name: Install dependencies - run: 'cask install' + - uses: emacs-eask/setup-eask@master + with: + version: 'snapshot' - name: Run tests - if: matrix.allow_failure != true run: | - cask exec ert-runner --reporter ert+duration - cask exec emacs --eval "(setq byte-compile-error-on-warn t)" -L . --batch -f batch-byte-compile smartparens.el smartparens-*[^pkg].el + eask clean all + eask package + eask install + eask compile - - name: Run tests (allow failure) - if: matrix.allow_failure == true + - name: Install dependencies + run: 'eask install-deps --dev' + + - name: Run ERT tests run: | - cask exec ert-runner --reporter ert+duration || true - cask exec emacs --eval "(setq byte-compile-error-on-warn t)" -L . --batch -f batch-byte-compile smartparens.el smartparens-*[^pkg].el || true + eask exec ert-runner --reporter ert+duration + eask exec emacs --eval "(setq byte-compile-error-on-warn t)" -L . --batch -f batch-byte-compile smartparens.el smartparens-*[^pkg].el + + - name: Coveralls + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + flag-name: emacs-${{ matrix.emacs-version }} + parallel: true + + finish: + needs: test + runs-on: ubuntu-latest + steps: + - name: Coveralls Finished + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + parallel-finished: true diff --git a/.gitignore b/.gitignore index 64bc594f..2f116597 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ docs/_build .eask .cask .elsa + +dist/ diff --git a/Eask b/Eask new file mode 100644 index 00000000..93f9f644 --- /dev/null +++ b/Eask @@ -0,0 +1,45 @@ +;; -*- mode: eask; lexical-binding: t -*- + +(package "smartparens" + "1.11.0" + "Automatic insertion, wrapping and paredit-like navigation with user defined pairs.") + +(website-url "https://github.com/Fuco1/smartparens") +(keywords "abbrev" "convenience" "editing") + +(package-file "smartparens.el") + +(files "smartparens-*.el") + +(script "test" "echo \"Error: no test specified\" && exit 1") + +(source 'gnu) +(source 'melpa) + +(depends-on "emacs" "28.1") +(depends-on "dash") + +(development + (depends-on "yasnippet") + (depends-on "elsa") + (depends-on "f") + (depends-on "ert-runner") + (depends-on "undercover") + (depends-on "shut-up") + (depends-on "racket-mode") + (depends-on "scala-mode") + (depends-on "rust-mode") + (depends-on "swift-mode") + (depends-on "auctex") + (depends-on "clojure-mode") + (depends-on "lua-mode") + (depends-on "js2-mode") + (depends-on "ess") + (depends-on "tuareg") + (depends-on "elixir-mode") + (depends-on "haskell-mode") + (depends-on "markdown-mode") + (depends-on "hungry-delete") + (depends-on "evil") + (depends-on "crystal-mode") + (depends-on "go-mode")) diff --git a/smartparens.el b/smartparens.el index 9cdc8dfb..b98b2fde 100644 --- a/smartparens.el +++ b/smartparens.el @@ -6,7 +6,7 @@ ;; Maintainer: Matus Goljer ;; Created: 17 Nov 2012 ;; Version: 1.11.0 -;; Package-Requires: ((dash "2.13.0")) +;; Package-Requires: ((emacs "28.1") (dash "2.13.0")) ;; Keywords: abbrev convenience editing ;; URL: https://github.com/Fuco1/smartparens diff --git a/test/test-helper.el b/test/test-helper.el index 2a568a62..76be3a0e 100644 --- a/test/test-helper.el +++ b/test/test-helper.el @@ -12,8 +12,7 @@ ;;; Code: -;; (when (require 'undercover nil t) -;; (undercover "smartparens*.el")) +(when (require 'undercover nil t) (undercover)) (require 'dash) (require 'f)