summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Schmidt <stefan@osg.samsung.com>2017-09-28 15:26:55 +0200
committerStefan Schmidt <stefan@osg.samsung.com>2017-09-28 15:26:55 +0200
commit30c085ca0e7fb88341a851e9004d3029fbda8a70 (patch)
treea19b80234550c02d32ba23c75eaeb4cc9b291a9c
parent6f06979cdc28f4e6c29b8e6621f8ff0c285bf5e5 (diff)
ci: initial travis CI support for Linux distros and MacOSX builds
This has been used by myself in a branch for a while now and it is time to bring it into master as a base for all future CI related work. I plan to use the same scripts and other bits for Jenkins as well as other CI systems later on. What we currently cover with this setup are linux builds for three different distros and MacOSX builds for two different versions. Travis will only be called when new commits get mirrored onto our GitHub mirror (which only happens once an hour). Expect delays on these builds. https://travis-ci.org/Enlightenment/efl
-rw-r--r--.ci/Dockerfile-Debian9111
-rw-r--r--.ci/Dockerfile-Fedora2611
-rw-r--r--.ci/Dockerfile-Ubuntu170411
-rwxr-xr-x.ci/ci-linux-build.sh10
-rwxr-xr-x.ci/ci-osx-build.sh16
-rwxr-xr-x.ci/ci-osx-deps.sh4
-rw-r--r--.travis.yml29
7 files changed, 92 insertions, 0 deletions
diff --git a/.ci/Dockerfile-Debian91 b/.ci/Dockerfile-Debian91
new file mode 100644
index 0000000..10d8a1e
--- /dev/null
+++ b/.ci/Dockerfile-Debian91
@@ -0,0 +1,11 @@
1FROM debian:9.1
2
3# Install
4RUN apt-get update -y
5RUN 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
6
7# Build
8RUN mkdir -p /src/
9WORKDIR /src/
10COPY . /src/
11RUN .ci/ci-linux-build.sh
diff --git a/.ci/Dockerfile-Fedora26 b/.ci/Dockerfile-Fedora26
new file mode 100644
index 0000000..50afa45
--- /dev/null
+++ b/.ci/Dockerfile-Fedora26
@@ -0,0 +1,11 @@
1FROM fedora:26
2
3# Install
4RUN dnf update --assumeyes
5RUN 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
6
7# Build
8RUN mkdir -p /src/
9WORKDIR /src/
10COPY . /src/
11RUN .ci/ci-linux-build.sh
diff --git a/.ci/Dockerfile-Ubuntu1704 b/.ci/Dockerfile-Ubuntu1704
new file mode 100644
index 0000000..426ac9e
--- /dev/null
+++ b/.ci/Dockerfile-Ubuntu1704
@@ -0,0 +1,11 @@
1FROM ubuntu:17.04
2
3# Install
4RUN apt-get update -y
5RUN 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
6
7# Build
8RUN mkdir -p /src/
9WORKDIR /src/
10COPY . /src/
11RUN .ci/ci-linux-build.sh
diff --git a/.ci/ci-linux-build.sh b/.ci/ci-linux-build.sh
new file mode 100755
index 0000000..5472495
--- /dev/null
+++ b/.ci/ci-linux-build.sh
@@ -0,0 +1,10 @@
1#!/bin/sh
2
3COPTS="--with-tests=regular"
4PARALLEL_JOBS=10
5
6# Normal build test of all targets
7./autogen.sh $COPTS $@
8make -j $PARALLEL_JOBS
9make -j $PARALLEL_JOBS examples
10make -j $PARALLEL_JOBS benchmark
diff --git a/.ci/ci-osx-build.sh b/.ci/ci-osx-build.sh
new file mode 100755
index 0000000..bc2a056
--- /dev/null
+++ b/.ci/ci-osx-build.sh
@@ -0,0 +1,16 @@
1#!/bin/sh
2
3COPTS="--with-crypto=none --disable-pulseaudio --disable-cxx-bindings"
4PARALLEL_JOBS=10
5
6# Prepare OSX env for build
7mkdir -p ~/Library/LaunchAgents
8ln -sfv /usr/local/opt/d-bus/*.plist ~/Library/LaunchAgents
9launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
10export PATH="$(brew --prefix gettext)/bin:$PATH"
11
12# Normal build test of all targets
13./autogen.sh $COPTS $@
14make -j $PARALLEL_JOBS
15make -j $PARALLEL_JOBS examples
16#make -j $PARALLEL_JOBS benchmark
diff --git a/.ci/ci-osx-deps.sh b/.ci/ci-osx-deps.sh
new file mode 100755
index 0000000..4be656a
--- /dev/null
+++ b/.ci/ci-osx-deps.sh
@@ -0,0 +1,4 @@
1#!/bin/sh
2
3brew update
4brew 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 0000000..209a1e0
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
1language: c
2
3sudo: required
4dist: trusty
5
6os: linux
7
8services:
9 - docker
10
11before_install:
12 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then .ci/ci-osx-deps.sh ; fi
13
14matrix:
15 include:
16 - env: DISTRO=Ubuntu1704
17 - env: DISTRO=Fedora26
18 - env: DISTRO=Debian91
19 - os: osx
20 osx_image: xcode7.3
21 - os: osx
22 osx_image: xcode8.3
23
24# Xcode 7.3.1, OS X 10.11
25# Xcode 8.3.3, OS X 10.12
26
27script:
28 - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then docker build -f .ci/Dockerfile-$DISTRO . ; fi
29 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then .ci/ci-osx-build.sh ; fi