From c657cfacc0201c7c298d7987b5b6a62b4d4a2284 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Mon, 21 Feb 2022 17:59:29 -0500 Subject: ci: Switch to GitHub Actions After GitHub Actions were available, this repository kept using Travis because it worked well enough, especially given this package is very much in maintenance mode. However, going forward it'd be nice to use purcell/setup-emacs action to test various Emacs versions. Don't bother testing against Emacs 24 because the next release will bump the minimum Emacs version to at least 25.1. While touching this setup, drop the Makefile target for downloading dependencies and instead just expect dependencies to be one level up from the snakemake-mode checkout. --- .github/workflows/test.yml | 43 +++++++++++++++++++++++++++++++++++++++++++ .travis.yml | 33 --------------------------------- Makefile | 18 +++--------------- 3 files changed, 46 insertions(+), 48 deletions(-) create mode 100644 .github/workflows/test.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..6772f36 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,43 @@ +name: test +on: push +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + emacs_version: + - 25.3 + - 27.2 + - snapshot + steps: + - name: Install emacs + uses: purcell/setup-emacs@master + with: + version: ${{ matrix.emacs_version }} + - name: Check out dash + uses: actions/checkout@v2 + with: + repository: magnars/dash.el + path: dash.el + - name: Check out magit-popup + uses: actions/checkout@v2 + with: + repository: magit/magit-popup + path: magit-popup + - name: Check out snakemake-mode + uses: actions/checkout@v2 + with: + repository: kyleam/snakemake-mode + path: snakemake-mode + - name: Set up Python 3.7 + uses: actions/setup-python@v1 + with: + python-version: 3.7 + - name: Install Snakemake + run: | + python -m pip install --upgrade pip + pip install snakemake + - name: Build snakemake-mode + run: make -C snakemake-mode all + - name: Test snaekmake-mode + run: make -C snakemake-mode test diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9eb10a1..0000000 --- a/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -language: python - -python: - - "3.7" - -env: - matrix: - # - EMACS=emacs24 # This is 24.3, while magit-popup.el requires 24.4. - - EMACS=emacs-snapshot - -install: - - if [ "$EMACS" = "emacs24" ]; then - sudo add-apt-repository -y ppa:cassou/emacs && - sudo apt-get update -qq && - sudo apt-get install -qq emacs24 emacs24-el; - fi - - if [ "$EMACS" = "emacs-snapshot" ]; then - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa && - sudo apt-get update -qq && - sudo apt-get install -qq emacs-snapshot; - fi - - pip install snakemake - -before_script: - make .deps - -script: - make test EMACS=${EMACS} - -notifications: - email: - on_success: never - on_failure: always diff --git a/Makefile b/Makefile index bcd2893..d93192a 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -LOAD_PATH = -L .deps -L . +LOAD_PATH = -L ../magit-popup -L ../dash.el -L . EMACS = emacs BATCH = $(EMACS) -Q --batch $(LOAD_PATH) CURL := curl --silent @@ -8,14 +8,11 @@ els := snakemake.el snakemake-mode.el elcs := $(patsubst %.el, %.elc, $(els)) AUTOLOADS_FILE = snakemake-autoloads.el -DASH_URL := https://raw.githubusercontent.com/magnars/dash.el/master/dash.el -POPUP_URL := https://raw.githubusercontent.com/magit/magit-popup/master/magit-popup.el - .PHONY: all all: $(elcs) $(AUTOLOADS_FILE) .PHONY: test -test: | .deps +test: @$(BATCH) -l snakemake-test \ --eval "(ert-run-tests-batch-and-exit '(not (tag interactive)))" @@ -25,18 +22,9 @@ $(AUTOLOADS_FILE): $(els) (generated-autoload-file \"$(CURDIR)/$@\")) \ (update-directory-autoloads \"$(CURDIR)/\"))" -.deps: - mkdir -p .deps - $(CURL) $(DASH_URL) > .deps/dash.el - $(CURL) $(POPUP_URL) > .deps/magit-popup.el - -%.elc: %.el | .deps +%.elc: %.el @$(BATCH) -f batch-byte-compile $< .PHONY: clean clean: $(RM) $(elcs) $(AUTOLOADS_FILE) - -.PHONY: clean-all -clean-all: clean - $(RM) -r .deps -- cgit v1.2.3