diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml new file mode 100644 index 0000000..bc1eade --- /dev/null +++ b/.github/workflows/install.yml @@ -0,0 +1,110 @@ +name: 'Check Installation' + +on: + # This will run tests on pushes + # to master branch or on pull merges: + push: + branches: + - 'main' + - 'master' + # This will run tests for every pull request: + pull_request: + # Rerun tests at 10 AM every Monday + # to check if they still work with latest dependencies. + schedule: + - cron: '0 10 * * 1' + +jobs: + run_tests: + strategy: + fail-fast: false + matrix: + lisp: + - sbcl-bin + - ccl-bin + - ecl + - abcl + - allegro + - clisp + - cmucl + os: + - ubuntu-latest + - macos-latest + quicklisp-dist: + - quicklisp + - ultralisp + include: + # Seems allegro is does not support 64bit OSX. + # Unable to install it using Roswell: + # alisp is not executable. Missing 32bit glibc? + - lisp: allegro + os: macos-latest + can-fail: true + # CLisp on Ubuntu can't be installed because of the error: + # # does not have + # the required size or alignment + - lisp: clisp + os: ubuntu-latest + can-fail: true + # CMUCL is 32bit and cant' work on 64bit OSX: + # .roswell/impls/x86-64/darwin/cmu-bin/21d/bin/lisp is not executable. Missing 32bit glibc? + - lisp: cmucl + os: macos-latest + can-fail: true + + + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.can-fail || false }} + + env: + LISP: ${{ matrix.lisp }} + OS: ${{ matrix.os }} + QUICKLISP_DIST: ${{ matrix.quicklisp-dist }} + + steps: + - uses: actions/checkout@v1 + - name: Show ENV + run: | + env | sort -u + - name: Install Roswell + run: | + if [[ "$OS" == "ubuntu-latest" ]]; then + sudo apt-get -y install git build-essential automake libcurl4-openssl-dev + fi + if [[ "$OS" == "macos-latest" ]]; then + brew install automake autoconf curl + fi + + curl -L https://raw.githubusercontent.com/svetlyak40wt/roswell/patches/scripts/install-for-ci.sh | sh + + echo $HOME/.roswell/bin >> $GITHUB_PATH + - name: Upgrade ASDF to the Latest Version + run: | + ros install asdf + - name: Install Qlot + run: | + ros install qlot + echo .qlot/bin >> $GITHUB_PATH + - name: Install Dependencies + run: | + rm -fr qlfile + touch qlfile + + if [[ "${QUICKLISP_DIST}" == 'ultralisp' ]]; then + echo dist ultralisp http://dist.ultralisp.org/ >> qlfile + fi + + qlot install + - name: Install System + run: | + if [[ "${QUICKLISP_DIST}" == 'quicklisp' ]]; then + qlot exec ros install 40ants/defmain + fi + + qlot exec ros install cl-info + - name: Run Tests + run: | + set -x + qlot exec cl-info --help + qlot exec cl-info --version + qlot exec cl-info cl-info diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 32b42a3..0000000 --- a/.travis.yml +++ /dev/null @@ -1,53 +0,0 @@ -language: common-lisp -sudo: false - -cache: - directories: - - $HOME/.roswell - - $HOME/.config/common-lisp - -addons: - apt: - packages: - - libc6-i386 - - openjdk-7-jre -env: - global: - - PATH=~/.roswell/bin:$PATH - - ROSWELL_INSTALL_DIR=$HOME/.roswell - matrix: - - LISP=sbcl-bin - - LISP=ecl - - LISP=abcl - - LISP=allegro - - LISP=ccl - - LISP=clisp - - LISP=cmucl - -# matrix: -# allow_failures: -# - env: LISP=clisp -# - env: LISP=ecl - -os: - - osx -# - linux - -install: - - curl -L https://raw.githubusercontent.com/snmsts/roswell/release/scripts/install-for-ci.sh | sh - - ros install asdf - - ros install ./ - -before_script: - - ros --version - - ros config - - ros -e '(princ (lisp-implementation-type)) - (terpri) - (princ (lisp-implementation-version)) - (terpri) - (princ *features*) - (terpri) - (uiop:quit 0)' - -script: - - cl-info diff --git a/README.rst b/README.rst index c071aa9..14dba4e 100644 --- a/README.rst +++ b/README.rst @@ -7,6 +7,9 @@ .. image:: https://travis-ci.org/40ants/cl-info.svg?branch=master :target: https://travis-ci.org/40ants/cl-info +.. image:: https://github.com/40ants/cl-info/workflows/Check%20Installation/badge.svg + :target: https://github.com/40ants/cl-info/actions + .. Everything starting from this commit will be inserted into the index page of the HTML documentation. .. include-from