diff --git a/.ci/Dockerfile-Debian91 b/.ci/Dockerfile-Debian91 new file mode 100644 index 0000000000..10d8a1e8b0 --- /dev/null +++ b/.ci/Dockerfile-Debian91 @@ -0,0 +1,11 @@ +FROM debian:9.1 + +# Install +RUN apt-get update -y +RUN apt-get install -y make gcc bison flex gawk subversion automake autoconf doxygen check autotools-dev autoconf-archive autopoint libtool gettext libpam0g-dev libfreetype6-dev libpng-dev zlib1g-dev libjpeg-dev libdbus-1-dev luajit libluajit-5.1-dev libx11-dev libxcursor-dev libxrender-dev libxrandr-dev libxfixes-dev libxdamage-dev libxcomposite-dev libxss-dev libxext-dev libxinerama-dev libxkbfile-dev libxtst-dev libxcb1-dev libxcb-shape0-dev libxcb-keysyms1-dev libpulse-dev libsndfile1-dev libudev-dev libblkid-dev libmount-dev libgstreamer1.0-dev libtiff5-dev libgif-dev curl libssl-dev libspectre-dev libpoppler-dev librsvg2-dev libraw-dev libxinerama-dev git libfribidi-dev libcogl-gles2-dev libbullet-dev libgstreamer-plugins-base1.0-dev libvlc-dev libpoppler-cpp-dev libsystemd-dev systemd libsystemd0 + +# Build +RUN mkdir -p /src/ +WORKDIR /src/ +COPY . /src/ +RUN .ci/ci-linux-build.sh diff --git a/.ci/Dockerfile-Fedora26 b/.ci/Dockerfile-Fedora26 new file mode 100644 index 0000000000..50afa45af1 --- /dev/null +++ b/.ci/Dockerfile-Fedora26 @@ -0,0 +1,11 @@ +FROM fedora:26 + +# Install +RUN dnf update --assumeyes +RUN dnf install --assumeyes bullet-devel libpng-devel libjpeg-turbo-devel gstreamer1-devel gstreamer1-plugins-base-devel zlib-devel luajit-devel libtiff-devel openssl-devel libcurl-devel dbus-devel glibc-devel fontconfig-devel freetype-devel fribidi-devel pulseaudio-libs-devel libsndfile-devel libX11-devel libXau-devel libXcomposite-devel libXdamage-devel libXdmcp-devel libXext-devel libXfixes-devel libXinerama-devel libXrandr-devel libXrender-devel libXScrnSaver-devel libXtst-devel libXcursor-devel libXp-devel libXi-devel mesa-libGL-devel giflib-devel libmount-devel libblkid-devel systemd-devel poppler-cpp-devel poppler-devel LibRaw-devel libspectre-devel librsvg2-devel autoconf automake gcc gcc-c++ gettext-devel findutils tar xz libtool make + +# Build +RUN mkdir -p /src/ +WORKDIR /src/ +COPY . /src/ +RUN .ci/ci-linux-build.sh diff --git a/.ci/Dockerfile-Ubuntu1704 b/.ci/Dockerfile-Ubuntu1704 new file mode 100644 index 0000000000..426ac9ec6f --- /dev/null +++ b/.ci/Dockerfile-Ubuntu1704 @@ -0,0 +1,11 @@ +FROM ubuntu:17.04 + +# Install +RUN apt-get update -y +RUN apt-get install -y build-essential autoconf automake autopoint doxygen check luajit libharfbuzz-dev libpng-dev libudev-dev libwebp-dev libssl-dev libluajit-5.1-dev libfribidi-dev libcogl-gles2-dev libgif-dev libtiff5-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libdbus-1-dev libmount-dev libblkid-dev libpulse-dev libxrandr-dev libxtst-dev libxcursor-dev libxcomposite-dev libxinerama-dev libxkbfile-dev libbullet-dev libvlc-dev libsndfile1-dev libraw-dev libspectre-dev libpoppler-cpp-dev libpam0g-dev liblz4-dev faenza-icon-theme gettext git imagemagick libasound2-dev libbluetooth-dev libfontconfig1-dev libfreetype6-dev libibus-1.0-dev libiconv-hook-dev libjpeg-dev libjpeg-turbo8-dev libpoppler-dev libpoppler-private-dev libproxy-dev librsvg2-dev libscim-dev libsystemd-dev libtool libudisks2-dev libunibreak-dev libxcb-keysyms1-dev libxine2-dev libxss-dev linux-tools-common libcurl4-openssl-dev + +# Build +RUN mkdir -p /src/ +WORKDIR /src/ +COPY . /src/ +RUN .ci/ci-linux-build.sh diff --git a/.ci/ci-linux-build.sh b/.ci/ci-linux-build.sh new file mode 100755 index 0000000000..5472495b5a --- /dev/null +++ b/.ci/ci-linux-build.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +COPTS="--with-tests=regular" +PARALLEL_JOBS=10 + +# Normal build test of all targets +./autogen.sh $COPTS $@ +make -j $PARALLEL_JOBS +make -j $PARALLEL_JOBS examples +make -j $PARALLEL_JOBS benchmark diff --git a/.ci/ci-osx-build.sh b/.ci/ci-osx-build.sh new file mode 100755 index 0000000000..bc2a056829 --- /dev/null +++ b/.ci/ci-osx-build.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +COPTS="--with-crypto=none --disable-pulseaudio --disable-cxx-bindings" +PARALLEL_JOBS=10 + +# Prepare OSX env for build +mkdir -p ~/Library/LaunchAgents +ln -sfv /usr/local/opt/d-bus/*.plist ~/Library/LaunchAgents +launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist +export PATH="$(brew --prefix gettext)/bin:$PATH" + +# Normal build test of all targets +./autogen.sh $COPTS $@ +make -j $PARALLEL_JOBS +make -j $PARALLEL_JOBS examples +#make -j $PARALLEL_JOBS benchmark diff --git a/.ci/ci-osx-deps.sh b/.ci/ci-osx-deps.sh new file mode 100755 index 0000000000..4be656a8fa --- /dev/null +++ b/.ci/ci-osx-deps.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +brew update +brew install gettext check bullet dbus fontconfig freetype fribidi gst-plugins-good gstreamer luajit openssl webp libsndfile glib libspectre libraw librsvg poppler lz4 diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..209a1e0071 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,29 @@ +language: c + +sudo: required +dist: trusty + +os: linux + +services: + - docker + +before_install: + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then .ci/ci-osx-deps.sh ; fi + +matrix: + include: + - env: DISTRO=Ubuntu1704 + - env: DISTRO=Fedora26 + - env: DISTRO=Debian91 + - os: osx + osx_image: xcode7.3 + - os: osx + osx_image: xcode8.3 + +# Xcode 7.3.1, OS X 10.11 +# Xcode 8.3.3, OS X 10.12 + +script: + - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then docker build -f .ci/Dockerfile-$DISTRO . ; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then .ci/ci-osx-build.sh ; fi