GithubHelp home page GithubHelp logo

cl-travis's Introduction

Build Status

Overview and quick start

CL-TRAVIS helps you test your Common Lisp projects with Travis and many different Lisp implementations: ABCL, Allegro CL, SBCL, CMUCL, CCL and ECL.

Using it is simple, you don't even have to clone this repository:

  1. Grab the sample .travis.yml file or one from the examples below
  2. Modify it to test your own project
  3. Push it to the root of your project's repository and enable Travis from your GitHub account.

Setting up target Lisps

In the first part of your .travis.yml file, use environment variables to setup test environments. The most important one is LISP. CL-TRAVIS uses it find out which Lisp implementation to install for you. You can use additional variables and specify that some environments are allowed to fail. See Travis's instructions for more possibilities.

env:
  matrix:
    - LISP=allegro
    - "LISP=sbcl FOO=baz"
    - "LISP=ccl FOO=bar"

matrix:
  allow_failures:
    - env: LISP=allegro

Running tests

In the second part of the .travis.yml file, pull in any dependencies of your project and use shell commands to run tests.

CL-TRAVIS ensures that CIM and Quicklisp are installed, which means you can conveniently run Lisp code from shell-script snippets in your .travis.yml files, using the CIM's cl command, grabbing any dependencies via Quicklisp's ql:quickload.

Also, ASDF is set up to look for system definitions recursively within your project repository and within the ~/lisp directory, so ql:quickload (or asdf:load-system) will find these before any others.

Here's an example that tests babel against the bleeding edge versions of trivial-features and alexandria but grabs its remaining dependencies through Quicklisp.

install:
  - curl -L https://github.com/luismbo/cl-travis/raw/master/install.sh | sh
  - git clone --depth=1 git://github.com/trivial-features/trivial-features.git ~/lisp/trivial-features
  - git clone git://common-lisp.net/projects/alexandria/alexandria.git ~/lisp/alexandria

script:
  - cl -e '(ql:quickload :babel-tests)
           (unless (babel-tests:run)
             (uiop:quit 1))'

Examples

Here's a list of .travis.yml files from various projects using CL-TRAVIS: CFFI, SLIME, Osicat, stumpwm, Babel, trivial-garbage, trivial-features.

cl-travis's People

Contributors

aeronotix avatar bendudson avatar joaotavora avatar luismbo avatar neil-lindquist avatar rodentrabies avatar sionescu avatar tokenrove avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cl-travis's Issues

Don't use sudo

If we manage to avoid using sudo to do our setup, then we've taken the first step towards being able to use Travis CI's caching mechanism.

Remove the CIM dependency

CIM has been deprecated. We should extract the cl script and just use that. #22 got rid of our last actual usage of CIM's implementation management.

Feature request: port to OSX

Currently it doesn't work on OSX. It would be great to add OSX builds to the list of travis matrix for CL software tested with travis.

install_i386_arch is failing

Culprit seems to be the snippet

    sudo dpkg --add-architecture i386
    sudo apt-get update -qq

which yields

W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release  Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)

normal execution and rc files

Hey,

During a build of stumpwm we currently require that the use have a working quicklisp environment if they want the build to succeed. So when make calls /usr/local/bin/sbcl it makes the assumption that the users RC file will initialise ASDF and Quicklisp if they are needed.

We have been using cl-travis quite successfully but since moving to CIM we have struggled to get the build working again.

Currently if we initialise an environment with cim e.g.

cl -l clx -l cl-ppcre -Q

The environment doesn't exist at runtime for any lisp distribution that is called directly (i.e not with the cl executable). This seems to be because only the cim executables actually init themselves with ~/.cim/init.lisp.

Currently we call sbcl like this /usr/local/bin/sbcl --load ./make-image.lisp Is there some way that we should be calling sbcl/ccl/clisp that will also initialise the cim machinery and it's init.lisp file?

We are currently using this in our travis yml file to get things working.

  - echo "(load \"/home/travis/asdf\")" > "$HOME/.clisprc.lisp"
  - cl -l clx -l cl-ppcre -e '(ql-util:without-prompting (ql:add-to-init-file))'

Thanks!

cl-nlp, sbcl, SET-DISPATCH-MACRO-CHARACTER issue

I tried to do a travis-ci setup for cl-nlp using cl-travis. However I run into the error which seems to be: SET-DISPATCH-MACRO-CHARACTER would modify the standard readtable. How do I fix this in the travis sbcl lisp env?

Relevant links:
https://travis-ci.org/dmsurti/cl-nlp/builds/40704448#L286
https://travis-ci.org/dmsurti/cl-nlp/builds/40704448#L358
https://travis-ci.org/dmsurti/cl-nlp/builds/40704448#L394

https://github.com/dmsurti/cl-nlp/tree/travis-sbcl

Allegro CL builds broken

Tried to upgrade ASDF to 3.1.6 in a31109f but that didn't work. Marked ACL as an expected failure until this is fixed.

$ cl -e '(ql:quickload :cl-travis-test) (pushnew :force-test-failure *features*) (rtest:do-tests) (unless (null (rtest:pending-tests)) (uiop:quit 1))'; [ $? -eq 1 ]
Warning: An error occurred
         (
; Downgraded ASDF from version 3.1.6 to version 3.1.5
)
         during the load "/home/travis/.cim/lib/script.lisp"
The command "cl -e '(ql:quickload :cl-travis-test) (pushnew :force-test-failure *features*) (rtest:do-tests) (unless (null (rtest:pending-tests)) (uiop:quit 1))'; [ $? -eq 1 ]" exited with 1.

Software versions

While I understand that randomly changing software versions used is bad idea for regression testing, I would find useful to be able to test code against more recent lisp versions. Is that possible at the moment, or is there some reason why this is bad idea?

What I tried and failed:

I looked at the https://raw.githubusercontent.com/luismbo/cl-travis/master/install.sh and the download URLs are hardwired. I tried to factor out the version (i.e.,
SBCL_TARBALL_URL1="http://prdownloads.sourceforge.net/sbcl/sbcl-${SBCL_VERSION:-1.2.13}-x86-64-linux-binary.tar.bz2"
), and pass SBCL_VERSION=2.0.0 to sh +x but then my build end up with

+cim use sbcl-system --default
ln: failed to create symbolic link './sbcl': File exists
+compile_asdf
+echo Compiling ASDF...
Compiling ASDF...
+cl -c /home/travis/asdf.lisp -Q
/home/travis/.cim/bin/sbcl-system: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /home/travis/.cim/bin/sbcl-system)

so apparently it is not so easy.

License missing for code

I was looking around for help doing exactly what this project does, however you didn't specify a license for the work. Due to the way copyright law works, that means no one can use your project! As I assume that is not what you want, can you please update the project with an appropriate license? If you are unsure of what license to pick, GitHub has a website at http://choosealicense.com/ to help you choose.

Thanks!

Builds break after failing to install Quicklisp on Allegro

I'm not sure whether the blame lies with cl-travis or the latest Quicklisp update (the client was updated April 16 and again April 24) or the interaction between the two, but this problem has caused builds to fail on Allegro since April 22 at the latest. Example: https://travis-ci.org/DalekBaldwin/check-it/jobs/61141813

Installing quicklisp.
Failed to install quicklisp.
can't read-byte from a string stream: #<EXCL:STRING-INPUT-SIMPLE-STREAM ";;  -*- mode: c" pos 0 @ #x206a8a3a>An error occured while processing command line arguments
The command "if [ -x ./install.sh ] && head -2 ./install.sh | grep '^# cl-travis' > /dev/null; then ./install.sh; else curl https://raw.githubusercontent.com/luismbo/cl-travis/master/install.sh | sh; fi" failed and exited with 1 during .
Your build has been stopped.

A QL error should make the build fail

I just tried to test a package that actually uses a local dependency, so quicklaoding it failed in Travis, but the cl -e '(ql:quickload "bulk/test") (unless (bulk/test:all) (uiop:quit 1))' command exited with 0, so the build was marked successful.

Upgrade CCL to 1.11

Current version in cl-travis is 1.10. The latest version of ironclad can't be loaded with this version of CCL. I get the following error message: Unknown X86 instruction (CCL::RETQ)

Fails due to some stale repos apparently

Self tests and all repos based on cl-travis are /erroring/ (not failing) tests for some CMUCL and SBCL combinations.

Fetched 69.6 kB in 0s (253 kB/s)
Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6-dev_2.15-0ubuntu10.5_amd64.deb  404  Not Found [IP: 2001:67c:1360:8c01::18 80]
Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc-dev-bin_2.15-0ubuntu10.5_amd64.deb  404  Not Found [IP: 2001:67c:1360:8c01::18 80]
Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc-bin_2.15-0ubuntu10.5_amd64.deb  404  Not Found [IP: 2001:67c:1360:8c01::18 80]
Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6_2.15-0ubuntu10.5_amd64.deb  404  Not Found [IP: 2001:67c:1360:8c01::18 80]
Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6_2.15-0ubuntu10.5_i386.deb  404  Not Found [IP: 2001:67c:1360:8c01::18 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.