[CI] Use parallel make jobs
[centerim5.git] / .travis.yml
blob08f162ca2c53a59471b62635b4e1a76673f5ca79
1 language: cpp
2 sudo: required
4 services:
5   - docker
7 matrix:
8   include:
9     # Debian 9 (stretch).
10     - env:
11       - NAME=debian
12       - IMAGE=debian:stretch
13       - UPDATE_CMD="apt-get update"
14       - UPGRADE_CMD="apt-get -y full-upgrade"
15       - INSTALL_CMD="apt-get -y install autoconf automake libtool autopoint
16           gettext pkg-config cmake make g++ libglib2.0-dev libpurple-dev
17           libsigc++-2.0-dev libncursesw5-dev python3 doxygen graphviz"
18     # Fedora 27.
19     - env:
20       - NAME=fedora
21       - IMAGE=fedora:27
22       - UPDATE_CMD="dnf makecache"
23       - UPGRADE_CMD="dnf -y upgrade"
24       - INSTALL_CMD="dnf -y install autoconf automake libtool gettext-devel
25           pkgconfig cmake make gcc-c++ glib2-devel libpurple-devel
26           libsigc++20-devel ncurses-devel doxygen graphviz"
28 # Define common environment variables.
29 env:
30   global:
31     - MAKE_JOBS=-j4
33 before_install:
34   - docker run -d --name ${NAME} -v $(pwd):/travis ${IMAGE} tail -f /dev/null
36 install:
37   - docker exec -t ${NAME} bash -c "${UPDATE_CMD}"
38   - docker exec -t ${NAME} bash -c "${UPGRADE_CMD}"
39   - docker exec -t ${NAME} bash -c "${INSTALL_CMD}"
41 script:
42   # Check the autotools build.
43   - docker exec -t ${NAME} bash -c "cd /travis;
44       ./bootstrap && ./configure && make ${MAKE_JOBS} distcheck"
45   # Check the cmake build.
46   - docker exec -t ${NAME} bash -c "cd /travis;
47       mkdir distcheck-cmake && cd distcheck-cmake &&
48         tar -xvzf ../centerim5-*.tar.gz && cmake centerim5-* &&
49         make ${MAKE_JOBS} && make ${MAKE_JOBS} check"
50   # Build the documentation.
51   - docker exec -t ${NAME} bash -c "cd /travis; make doc"