summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Le Vaillant <glv@posteo.net>2021-01-04 11:56:54 +0100
committerGuillaume Le Vaillant <glv@posteo.net>2021-01-04 14:20:49 +0100
commitd57f1f46c12ba847dd6ff9486071954c8232abcc (patch)
treee1860a0337e92b5e720112fb63884e9374409415
parentf215e183e7fe0b66da009c07d70e6f738ea1da03 (diff)
Add Github Actions CI
-rw-r--r--.github/workflows/ci.yml43
-rw-r--r--README.org2
2 files changed, 45 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))'
diff --git a/README.org b/README.org
index 00e7466..6c07033 100644
--- a/README.org
+++ b/README.org
@@ -22,6 +22,8 @@
#+ATTR_HTML: :style width: 0; height: 0; padding: 0; margin: 0; border: 0; overflow: hidden;
[[https://travis-ci.org/sharplispers/ironclad][file:https://travis-ci.org/sharplispers/ironclad.svg]]
+#+ATTR_HTML: :style width: 0; height: 0; padding: 0; margin: 0; border: 0; overflow: hidden;
+[[https://github.com/sharplispers/ironclad/workflows/CI/badge.svg?branch=master][file:https://github.com/sharplispers/ironclad/workflows/CI/badge.svg?branch=master]]
Ironclad is a cryptography library written entirely in Common Lisp. It
includes support for several popular [[#ciphers][ciphers]], [[#digests][digests]], [[#message-authentication-codes][MACs]] and