summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml43
1 files changed, 43 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..b854974
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,43 @@
+name: CI
+
+on:
+ push:
+ pull_request:
+ branches: [master]
+
+jobs:
+ test:
+ name: ${{matrix.lisp}} on ${{matrix.os}}
+ strategy:
+ matrix:
+ lisp: [abcl-bin, allegro, ccl-bin, ccl-bin READTABLE_CASE_INVERT=1, ecl, sbcl-bin]
+ os: [ubuntu-latest]
+ fail-fast: false
+ runs-on: ${{matrix.os}}
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install Roswell
+ shell: bash
+ env:
+ LISP: ${{matrix.lisp}}
+ run: curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh -x
+
+ - name: Get Lisp info
+ continue-on-error: true
+ shell: bash
+ run: |
+ ros -e '(format t "Lisp: ~a ~a on ~a~%" (lisp-implementation-type) (lisp-implementation-version) (machine-type))'
+ ros -e '(format t "Fixnum bits: ~a~%" (integer-length most-positive-fixnum))'
+ ros -e '(ql:quickload "trivial-features" :silent t)' -e '(format t "Features: ~s~%" *features*)'
+
+ - name: Allegro workaround
+ # Compiling and testing can fail on Allegro CL Express Free edition
+ # because of the 50 MB heap size limitation, so let's try to split
+ # the work in two as a possible workaround...
+ if: ${{matrix.lisp == 'allegro'}}
+ shell: bash
+ run: ros -e '(setf *debugger-hook* (lambda (&rest ignorable) (declare (ignore ignorable)) (uiop:quit 0)))' -e '(ql:quickload "ironclad/tests")'
+
+ - name: Run tests
+ shell: bash
+ run: ros -e '(setf *debugger-hook* (lambda (&rest ignorable) (declare (ignore ignorable)) (uiop:quit -1)))' -e '(when (uiop:getenvp "READTABLE_CASE_INVERT") (format t "changing readtable-case to :invert~%") (setq *readtable* (let ((rt (copy-readtable))) (setf (readtable-case rt) :invert) rt)))' -e '(ql:quickload "ironclad/tests")' -e '(unless (rt:do-tests) (uiop:quit -1))'