Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple OS support (Linux/Mac OS) #11

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

fukamachi
Copy link

Travis CI is providing a feature for testing on multiple operating systems if we ask to enable it.

http://docs.travis-ci.com/user/multi-os/

How to try

  1. Ask Travis CI's support team to enable the feature for your repository.
  2. Add os option to your .travis.yml.
  3. Run tests on Travis CI.
# Example of .travis.yml
os:
  - linux
  - osx

Limitations

This pull request is modifying install.sh for Mac OS environment with some limitations:

  • $LISP must be one of sbcl, sbcl32, ccl, abcl, clisp (ccl32,allegro, ecl and cmucl are not supported)
  • SBCL version is a little bit old (v1.1.8 for 64bit and v1.1.6 for 32bit)
  • Binary version of SBCL for Mac OS doesn't have thread support

I tried the multi-OS feature for Woo, but it was failed because the tests require thread-support though the binary SBCL doesn't have it.
Building from the source code or using Homebrew might be better for this.

But, anyway, I'm sending this pull request for getting your thoughts and discussing about the feature.

@luismbo
Copy link
Owner

luismbo commented Jan 13, 2015

Sounds great! I asked Travis's support team to enable multi OS support for this repo so we can test this new functionality.

Regarding SBCL's old OSX binaries, we can compile our own and upload them somewhere (like I did for some of the other assets).

I'll look at your PR more carefully once multi OS support is enabled here.

Thanks!

@@ -223,7 +251,10 @@ install_clisp() {
sudo ln -s /usr/bin/clisp /usr/local/bin/clisp32
else
echo "Installing CLISP..."
sudo apt-get install clisp
case "$TRAVIS_OS_NAME" in
osx) brew install clisp ;;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Building CLISP takes a long time. It'd be nicer to install a precompiled version. Do you know how to create casks? I guess a simple tarball would be fine too.

@luismbo
Copy link
Owner

luismbo commented Jan 20, 2015

So, multi OS support has been enabled for this repo. I've uploaded an updated SBCL tarball (with thread support) to the test-pr-11 branch.

A build is here: https://travis-ci.org/luismbo/cl-travis/builds/47711973.

It's nice that your changes can handle an empty TRAVIS_OS_NAME since that at least gives Semaphore CI (or other Travis competitors) a chance.

I couldn't find a way to disable certain OS/LISP combinations in the .travis.yml file. Do you know how to do that?

@luismbo
Copy link
Owner

luismbo commented Jan 20, 2015

Oh, another thing. I don't know how to cross-compile a x86 version of SBCL on OS X. Perhaps we shouldn't worry too much about that particular combination. But if you figure out how to do it, I can upload an updated tarball.

@fukamachi
Copy link
Author

I couldn't find a way to disable certain OS/LISP combinations in the .travis.yml file. Do you know how to do that?

No, I don't. And they don't even mention it in the manual page. Probably you would be better to ask them and send a feedback if they don't have it.

I don't know how to cross-compile a x86 version of SBCL on OS X. Perhaps we shouldn't worry too much about that particular combination.

You can build it with --arch x86 option, I think.

@luismbo
Copy link
Owner

luismbo commented Jan 22, 2015

I read the Travis CI docs a little bit more carefully and this seems to work for disabling OS/LISP combinations: 204080b Yay.

The --arch=x86 option seems to have worked. Testing that here: https://travis-ci.org/luismbo/cl-travis/jobs/47860067

So, I think the major thing missing at this point (besides all the unsupported Lisps) is a binary version of CLISP. Oh, and documentation, I guess. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants