diff options
author | Guillaume Le Vaillant <glv@posteo.net> | 2021-01-04 11:56:54 +0100 |
---|---|---|
committer | Guillaume Le Vaillant <glv@posteo.net> | 2021-01-04 14:20:49 +0100 |
commit | d57f1f46c12ba847dd6ff9486071954c8232abcc (patch) | |
tree | e1860a0337e92b5e720112fb63884e9374409415 | |
parent | f215e183e7fe0b66da009c07d70e6f738ea1da03 (diff) |
Add Github Actions CI
-rw-r--r-- | .github/workflows/ci.yml | 43 | ||||
-rw-r--r-- | README.org | 2 |
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))' @@ -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 |