aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Meyer <kyle@kyleam.com>2022-02-21 17:59:29 -0500
committerKyle Meyer <kyle@kyleam.com>2022-02-21 18:01:00 -0500
commitc657cfacc0201c7c298d7987b5b6a62b4d4a2284 (patch)
tree42071b3322bae09cade7e3f1c0791d6e487e8ddc
parente735cccc4f7032e6b4bbae1a23c4906d89e8ea10 (diff)
downloadsnakemake-mode-c657cfacc0201c7c298d7987b5b6a62b4d4a2284.tar.gz
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.
-rw-r--r--.github/workflows/test.yml43
-rw-r--r--.travis.yml33
-rw-r--r--Makefile18
3 files changed, 46 insertions, 48 deletions
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