117 lines
5.2 KiB
YAML
117 lines
5.2 KiB
YAML
language: c
|
|
env:
|
|
matrix:
|
|
# Note: luarocks does not work with Lua 5.0.
|
|
# - LUA=5.0 LUAPKG=50 LUALIB=/usr/lib/liblua50.so
|
|
- LUA=5.1 LUAPKG=5.1 LUALIB=/usr/lib/x86_64-linux-gnu/liblua5.1.so
|
|
- LUA=5.2 LUAPKG=5.2 LUALIB=/usr/lib/x86_64-linux-gnu/liblua5.2.so
|
|
global:
|
|
# Secure token to push to gh-pages.
|
|
- secure: "LZxt9559+V3qJMdVgmKW4RYTt8ZINooex/qsnoEJUtZloj/eFNG4COT2z6a2yeH2tKWzknCsmV9nLPJiNEA2KLcyqDhjFQvJwKmsBuhGUmLyeQgfenjweorRjO8NT18X1SAEUXAMnClPu+OeTDs4BAuVn5foGZ7xpcRg2E+j2mc="
|
|
|
|
|
|
before_install:
|
|
- cmake --version
|
|
|
|
install:
|
|
# Travis boilerplate: the apt-get cache might be out of date.
|
|
- sudo apt-get update -qq
|
|
|
|
# Do not install recommended packages with apt-get.
|
|
- echo 'APT::Install-Recommends "false";' | sudo tee /etc/apt/apt.conf.d/no-recommends
|
|
|
|
# Install dependencies according to:
|
|
# apt-cache showsrc awesome | grep -E '^(Version|Build-Depends)'
|
|
- sudo apt-get install libcairo2-dev xmlto asciidoc libpango1.0-dev gperf luadoc libxcb-xtest0-dev libxcb-icccm4-dev libxcb-randr0-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libxcb-image0-dev libev-dev libimlib2-dev libdbus-1-dev libxdg-basedir-dev libstartup-notification0-dev imagemagick libxcb1-dev libxcb-shape0-dev libxcb-util0-dev libxcursor-dev libx11-xcb-dev
|
|
|
|
# Install Lua (per env).
|
|
- sudo apt-get install liblua${LUAPKG}-dev lua${LUAPKG}
|
|
|
|
# For missing libxcb-cursor-dev.
|
|
- sudo apt-get install -qq xutils-dev libxcb-render-util0-dev gperf
|
|
- wget http://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.2.tar.gz
|
|
- tar xf xcb-util-cursor-0.1.2.tar.gz
|
|
- cd xcb-util-cursor-0.1.2
|
|
- ./configure
|
|
- sudo make install
|
|
- sudo ldconfig
|
|
- cd ..
|
|
|
|
# For xcb-proto >= 1.11, required by libxcb.
|
|
- wget http://xcb.freedesktop.org/dist/xcb-proto-1.11.tar.bz2
|
|
- tar xf xcb-proto-1.11.tar.bz2
|
|
- cd xcb-proto-1.11
|
|
- ./configure
|
|
- sudo make install
|
|
- cd ..
|
|
|
|
# For missing libxcb-xkb-dev.
|
|
- wget http://xcb.freedesktop.org/dist/libxcb-1.11.tar.bz2
|
|
- tar xf libxcb-1.11.tar.bz2
|
|
- cd libxcb-1.11
|
|
- ./configure
|
|
- sudo make install
|
|
- sudo ldconfig
|
|
- cd ..
|
|
|
|
# For missing libxcbcommon-dev/libxcbcommon-x11-dev (PR #227).
|
|
- wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz
|
|
- tar xf libxkbcommon-0.5.0.tar.xz
|
|
- cd libxkbcommon-0.5.0
|
|
- ./configure
|
|
- sudo make install
|
|
- sudo ldconfig
|
|
- cd ..
|
|
|
|
# lgi: is too old on travis, install it via luarocks.
|
|
# - sudo apt-get install -qq lua-lgi
|
|
- sudo apt-get install -qq gir1.2-pango-1.0
|
|
|
|
# Install luarocks (for the selected Lua version).
|
|
- wget http://keplerproject.github.io/luarocks/releases/luarocks-2.2.2.tar.gz
|
|
- tar xf luarocks-2.2.2.tar.gz
|
|
- cd luarocks-2.2.2
|
|
- ./configure --lua-version=$LUA
|
|
- make build
|
|
- sudo make install
|
|
- cd ..
|
|
|
|
- sudo apt-get install -qq libgirepository1.0-dev
|
|
- sudo luarocks install lgi
|
|
|
|
# Install busted for "make check".
|
|
- sudo luarocks install busted
|
|
|
|
# Install ldoc for building docs.
|
|
- sudo luarocks install ldoc
|
|
- sudo luarocks install lua-discount
|
|
|
|
# Install CMake 3+, via http://www.cmake.org/download/#latest.
|
|
- wget http://www.cmake.org/files/v3.2/cmake-3.2.3-Linux-x86_64.tar.Z
|
|
- tar xf cmake-3.2.3-Linux-x86_64.tar.Z
|
|
- PATH=$PWD/cmake-3.2.3-Linux-x86_64/bin:$PATH
|
|
|
|
# Deps for functional tests.
|
|
- sudo apt-get install -qq dbus-x11 xterm xdotool xterm xvfb
|
|
|
|
# Determine custom version.
|
|
- '[ "$TRAVIS_PULL_REQUEST" = false ] && AWESOME_VERSION="${TRAVIS_BRANCH}-g$(git rev-parse --short HEAD)-$(date -Iseconds)" || AWESOME_VERSION="${TRAVIS_BRANCH}-PR${TRAVIS_PULL_REQUEST}-g$(git rev-parse --short HEAD)-$(date -Iseconds)"'
|
|
|
|
script:
|
|
- export CMAKE_ARGS="-DLUA_LIBRARY=${LUALIB} -DLUA_INCLUDE_DIR=/usr/include/lua${LUAPKG} -D OVERRIDE_VERSION=$AWESOME_VERSION"
|
|
- make && sudo env PATH=$PATH make install && awesome --version && tests/run.sh
|
|
|
|
# Push updated API docs for non-PRs builds on master.
|
|
# It uses "diff -I .." to check if there are relevant changes, and then adds
|
|
# them in two separate commits. This allows to more easily see real changes to
|
|
# the documentation.
|
|
after_success:
|
|
- REPO_APIDOC="https://${GH_TOKEN}@github.com/awesomeWM/apidoc"
|
|
# Export these to not add "git config" calls to the long command.
|
|
- export GIT_AUTHOR_NAME="awesome-robot on Travis CI"
|
|
- export GIT_AUTHOR_EMAIL="awesome-robot@users.noreply.github.com"
|
|
- export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
|
|
- export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
|
|
# NOTE: stdout/stderr might/should be discarded to not leak sensitive information.
|
|
- '[ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = false ] && { echo "Uploading documentation..." && cd build && git clone --quiet --branch gh-pages $REPO_APIDOC apidoc && diff -Nur apidoc doc -I "Last updated" -I "<strong>Release</strong>:" -I "(version master-" -x .git > /tmp/p1; { echo "Patch:"; cat /tmp/p1; } && cd apidoc && patch -p1 < /tmp/p1 && git add --all . && git commit -m "Update docs for $AWESOME_VERSION via Travis" && { mv .git ../doc && cd ../doc && git add --all . && git commit -m "minor: update timestamps/version" && git push --quiet origin gh-pages || echo "Uploading docs failed!"; } || echo "Documentation has not changed."; } || echo "Not uploading docs for $TRAVIS_BRANCH:$TRAVIS_PULL_REQUEST."'
|