stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=30c085ca0e7fb88341a851e9004d3029fbda8a70

commit 30c085ca0e7fb88341a851e9004d3029fbda8a70
Author: Stefan Schmidt <ste...@osg.samsung.com>
Date:   Thu Sep 28 15:26:55 2017 +0200

    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
---
 .ci/Dockerfile-Debian91   | 11 +++++++++++
 .ci/Dockerfile-Fedora26   | 11 +++++++++++
 .ci/Dockerfile-Ubuntu1704 | 11 +++++++++++
 .ci/ci-linux-build.sh     | 10 ++++++++++
 .ci/ci-osx-build.sh       | 16 ++++++++++++++++
 .ci/ci-osx-deps.sh        |  4 ++++
 .travis.yml               | 29 +++++++++++++++++++++++++++++
 7 files changed, 92 insertions(+)

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 libsndfile [...]
+
+# 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 libX [...]
+
+# 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 libp [...]
+
+# 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

-- 


Reply via email to