Skip to content

Commit

Permalink
ci: build SBCL from source.
Browse files Browse the repository at this point in the history
Travis and Netlify both use Ubuntu 16 as their build distro. The
version of SBCL available in Ubuntu 16 is `1.3.1` which contains
`asdf` version `3.1.5`. `launch-program` was added in `asdf`
version `3.1.7.26`. The absence of `launch-program` means
`3bmd-ext-code-blocks` will fail to build. To address that I
decided to build SBCL from source in Travis to get a more up to date
version of `asdf` (which is bundled with `sbcl`).

This turned out to be a lovely yak shaving exercise.
  • Loading branch information
Adam Simpson committed Aug 24, 2020
1 parent 367680b commit a56ee70
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
10 changes: 2 additions & 8 deletions .travis.yml
@@ -1,19 +1,13 @@
language: lisp
sudo: required

dist: focal
dist: xenial
os:
- linux
- osx

install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -qq; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install zlib1g-dev sbcl; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install sbcl; fi
- curl -O "https://beta.quicklisp.org/quicklisp.lisp"
- sbcl --non-interactive --load quicklisp.lisp --eval "(quicklisp-quickstart:install :path \"~/quicklisp\")"
- sbcl --non-interactive --load ~/quicklisp/setup.lisp --eval "(ql::without-prompting (ql:add-to-init-file))"
- ./ci/install.sh

script:
- make cycle
Expand Down
20 changes: 20 additions & 0 deletions ci/install.sh
@@ -0,0 +1,20 @@
#!/bin/sh

if [ "$TRAVIS_OS_NAME" = "linux" ]; then
sudo apt update -qy;
sudo apt install -qy curl zlib1g-dev sbcl build-essential git;
git clone --depth 1 -b sbcl-2.0.7 git://git.code.sf.net/p/sbcl/sbcl /tmp/sbcl;
cd /tmp/sbcl || exit;
sh make.sh --with-sb-core-compression;
sudo sh install.sh;
sudo apt remove sbcl;
fi

if [ "$TRAVIS_OS_NAME" = "osx" ]; then
brew update;
brew install sbcl;
fi

curl -O "https://beta.quicklisp.org/quicklisp.lisp";
/usr/local/bin/sbcl --non-interactive --load quicklisp.lisp --eval "(quicklisp-quickstart:install :path \"~/quicklisp\")";
/usr/local/bin/sbcl --non-interactive --load ~/quicklisp/setup.lisp --eval "(ql::without-prompting (ql:add-to-init-file))";

0 comments on commit a56ee70

Please sign in to comment.