2015-10-16 16:48:37 +02:00
|
|
|
sudo: required
|
|
|
|
dist: trusty
|
2015-04-26 04:00:50 +02:00
|
|
|
language: c
|
|
|
|
env:
|
|
|
|
matrix:
|
|
|
|
# Note: luarocks does not work with Lua 5.0.
|
2015-09-27 18:10:02 +02:00
|
|
|
- LUA=5.1 LGIVER= LUANAME=lua5.1
|
2016-02-06 15:23:28 +01:00
|
|
|
- LUA=5.2 LGIVER= LUANAME=lua5.2 BUILD_APIDOC=true DO_COVERAGE=true
|
2015-09-27 18:10:02 +02:00
|
|
|
- LUA=5.2 LGIVER=0.7.1 LUANAME=lua5.2
|
|
|
|
# luajit: requires --lua-suffix=jit-2.0.0-beta9 in Ubuntu precise.
|
|
|
|
# Later versions seem to provide a `luajit` symlink, so `jit` would be enough.
|
|
|
|
# See http://packages.ubuntu.com/precise/i386/luajit/filelist.
|
2015-10-16 16:48:37 +02:00
|
|
|
- LUA=5.1 LGIVER= LUANAME=luajit-5.1 INSTALL_PKGS="luajit" LUAINCLUDE=/usr/include/luajit-2.0 LUAROCKS_ARGS=--lua-suffix=jit-2.0.2
|
2016-01-24 15:52:29 +01:00
|
|
|
# Lua 5.3 isn't available in Ubuntu trusty, so some magic below installs it
|
|
|
|
- LUA=5.3 LGIVER= LUANAME=lua5.3 LUALIBRARY=/usr/lib/liblua.so
|
2015-07-23 23:28:39 +02:00
|
|
|
global:
|
|
|
|
# Secure token to push to gh-pages.
|
|
|
|
- secure: "LZxt9559+V3qJMdVgmKW4RYTt8ZINooex/qsnoEJUtZloj/eFNG4COT2z6a2yeH2tKWzknCsmV9nLPJiNEA2KLcyqDhjFQvJwKmsBuhGUmLyeQgfenjweorRjO8NT18X1SAEUXAMnClPu+OeTDs4BAuVn5foGZ7xpcRg2E+j2mc="
|
|
|
|
|
2015-05-26 16:05:07 +02:00
|
|
|
before_install:
|
2015-10-16 16:48:37 +02:00
|
|
|
- if [ -z $LUAINCLUDE ]; then LUAINCLUDE=/usr/include/${LUANAME}; fi
|
2016-01-24 15:52:29 +01:00
|
|
|
- if [ -z $LUALIBRARY ]; then LUALIBRARY=/usr/lib/x86_64-linux-gnu/lib${LUANAME}.so; fi
|
2015-05-26 16:05:07 +02:00
|
|
|
- cmake --version
|
|
|
|
|
2015-04-26 04:00:50 +02:00
|
|
|
install:
|
|
|
|
# Travis boilerplate: the apt-get cache might be out of date.
|
2015-12-17 00:18:20 +01:00
|
|
|
- travis_retry sudo apt-get update -qq
|
2015-04-26 04:00:50 +02:00
|
|
|
|
|
|
|
# Do not install recommended packages with apt-get.
|
|
|
|
- echo 'APT::Install-Recommends "false";' | sudo tee /etc/apt/apt.conf.d/no-recommends
|
|
|
|
|
2015-10-16 16:48:37 +02:00
|
|
|
# Install build dependencies.
|
|
|
|
# See also `apt-cache showsrc awesome | grep -E '^(Version|Build-Depends)'`.
|
2016-01-24 15:52:29 +01:00
|
|
|
- sudo apt-get install -y libcairo2-dev xmlto asciidoc libpango1.0-dev libxcb-xtest0-dev libxcb-icccm4-dev libxcb-randr0-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libdbus-1-dev libxdg-basedir-dev libstartup-notification0-dev imagemagick libxcb1-dev libxcb-shape0-dev libxcb-util0-dev libx11-xcb-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev
|
2015-04-26 04:00:50 +02:00
|
|
|
|
2015-10-16 16:48:37 +02:00
|
|
|
# Deps for functional tests.
|
2015-10-28 01:00:00 +01:00
|
|
|
- sudo apt-get install -y dbus-x11 xterm xdotool xterm xvfb rxvt-unicode
|
2015-04-26 04:00:50 +02:00
|
|
|
|
2015-10-16 16:48:37 +02:00
|
|
|
# Install Lua (per env).
|
2016-01-24 15:52:29 +01:00
|
|
|
# Note that Lua 5.3 is installed by hand, because not available in trusty
|
|
|
|
- |
|
2016-02-11 21:40:22 +01:00
|
|
|
if [[ "$LUA" == "5.3" ]]; then
|
|
|
|
wget http://www.lua.org/ftp/lua-5.3.2.tar.gz -O lua.tar.gz
|
|
|
|
tar -xvzf lua.tar.gz
|
|
|
|
cd lua-*
|
|
|
|
(cd src && make SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline" LUA_A=liblua.so MYCFLAGS="-fPIC" RANLIB=: AR="gcc -shared -ldl -o" liblua.so) || exit 1
|
|
|
|
sudo make INSTALL_TOP=/usr/ INSTALL_INC=${LUAINCLUDE} TO_LIB=liblua.so linux install || exit 1
|
|
|
|
cd ..
|
|
|
|
else
|
|
|
|
sudo apt-get install -y lib${LUANAME}-dev ${LUANAME} ${INSTALL_PKGS}
|
|
|
|
fi
|
2016-01-24 15:52:29 +01:00
|
|
|
|
|
|
|
# "Create" /usr/bin/lua if needed (Yup, this is a bad hack)
|
|
|
|
- if [ ! -e "/usr/bin/lua" ]; then sudo ln -s /usr/bin/luajit /usr/bin/lua; fi
|
2015-09-27 18:10:02 +02:00
|
|
|
|
2015-04-26 04:00:50 +02:00
|
|
|
# Install luarocks (for the selected Lua version).
|
2015-11-20 16:51:30 +01:00
|
|
|
- travis_retry wget https://keplerproject.github.io/luarocks/releases/luarocks-2.2.2.tar.gz
|
2015-06-10 19:22:31 +02:00
|
|
|
- tar xf luarocks-2.2.2.tar.gz
|
|
|
|
- cd luarocks-2.2.2
|
2015-09-27 18:10:02 +02:00
|
|
|
- ./configure --lua-version=$LUA --with-lua-include=${LUAINCLUDE} ${LUAROCKS_ARGS}
|
2015-06-13 00:47:58 +02:00
|
|
|
- make build
|
2015-04-26 04:00:50 +02:00
|
|
|
- sudo make install
|
|
|
|
- cd ..
|
|
|
|
|
2015-10-16 16:48:37 +02:00
|
|
|
# lgi.
|
|
|
|
- sudo apt-get install -y gir1.2-pango-1.0 libgirepository1.0-dev
|
|
|
|
- travis_retry sudo luarocks install lgi $LGIVER
|
2015-04-26 04:00:50 +02:00
|
|
|
|
|
|
|
# Install busted for "make check".
|
2015-10-16 16:48:37 +02:00
|
|
|
- travis_retry sudo luarocks install busted
|
2015-04-26 04:00:50 +02:00
|
|
|
|
|
|
|
# Install ldoc for building docs.
|
2015-10-16 16:48:37 +02:00
|
|
|
- travis_retry sudo luarocks install ldoc
|
|
|
|
- travis_retry sudo luarocks install lua-discount
|
2015-07-10 13:17:50 +02:00
|
|
|
|
2016-02-06 15:23:28 +01:00
|
|
|
# Instal luacov-coveralls for code coverage testing.
|
|
|
|
- if [ "$DO_COVERAGE" = "true" ]; then sudo luarocks install luacov-coveralls; fi
|
|
|
|
|
2015-07-24 01:01:38 +02:00
|
|
|
# Determine custom version.
|
2015-07-27 15:57:11 +02:00
|
|
|
- export AWESOME_VERSION="${TRAVIS_BRANCH}-g$(git rev-parse --short HEAD)"
|
|
|
|
- 'if [ "$TRAVIS_PULL_REQUEST" != false ]; then AWESOME_VERSION="${AWESOME_VERSION}-PR${TRAVIS_PULL_REQUEST}"; fi'
|
2015-07-24 01:01:38 +02:00
|
|
|
|
2015-04-26 04:00:50 +02:00
|
|
|
script:
|
2016-01-24 15:52:29 +01:00
|
|
|
- export CMAKE_ARGS="-DLUA_LIBRARY=${LUALIBRARY} -DLUA_INCLUDE_DIR=${LUAINCLUDE} -D OVERRIDE_VERSION=$AWESOME_VERSION"
|
2016-02-07 16:00:31 +01:00
|
|
|
- make && sudo env PATH=$PATH make install && awesome --version && make check
|
2016-02-06 17:18:23 +01:00
|
|
|
- |
|
|
|
|
if [ "$DO_COVERAGE" = "true" ]; then
|
|
|
|
make check-coverage || exit 1;
|
|
|
|
sed -i "1 i\\require('luacov.runner')('"$PWD"/.luacov')" build/awesomerc.lua || exit 1
|
|
|
|
BUILD_DIRECTORY="" tests/run.sh || exit 1
|
|
|
|
fi
|
2015-07-23 23:28:39 +02:00
|
|
|
|
|
|
|
after_success:
|
2015-07-27 15:57:11 +02:00
|
|
|
# Push updated API docs for relevant branches, e.g. non-PRs builds on master.
|
2015-10-10 23:08:20 +02:00
|
|
|
- if [ "$BUILD_APIDOC" = "true" ]; then build-utils/travis-apidoc.sh; fi
|
2016-02-06 15:23:28 +01:00
|
|
|
# Push code coverage information
|
|
|
|
- if [ "$DO_COVERAGE" = "true" ]; then BUILD_DIRECTORY="$(pwd)/$(readlink build)/" luacov-coveralls --verbose --merge; fi
|