summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2018-07-10 12:14:27 -0400
committerStefan Schmidt <s.schmidt@samsung.com>2018-07-26 08:55:58 +0200
commit45988ac6c0c8ca661601dcd9fdf10171a13568c7 (patch)
tree3640f1536a90d70ac27a663ab979c17de4c81730
parent24e5aa668a291a70a97483caaf551e25bd7ea95a (diff)
ci: refactor all build steps into separate build scripts
this moves each step of the ci build into a separate script with the build type passed as an argument, allowing for easier modification of each individual step as necessary and making travis.yml more readable Differential Revision: https://phab.enlightenment.org/D6604 also includes: ci: break out make commands into travis.yml from build scripts this simplifies the platform-specific build scripts to only perform the configure stage of the build (and any additional setup) and then uses standardized commands for the build in addition to being simpler, this will also provide more/better info about build timings ref D6603
-rwxr-xr-x.ci/build-efl-app.sh2
-rwxr-xr-x.ci/ci-configure.sh67
-rwxr-xr-x.ci/ci-linux-build.sh63
-rwxr-xr-x.ci/ci-make-benchmark.sh14
-rwxr-xr-x.ci/ci-make-checkbuild.sh14
-rwxr-xr-x.ci/ci-make-distcheck.sh14
-rwxr-xr-x.ci/ci-make-examples.sh14
-rwxr-xr-x.ci/ci-make-install.sh14
-rwxr-xr-x.ci/ci-make.sh10
-rwxr-xr-x.ci/ci-osx-build.sh20
-rw-r--r--.travis.yml24
11 files changed, 169 insertions, 87 deletions
diff --git a/.ci/build-efl-app.sh b/.ci/build-efl-app.sh
index ac22e09db5..94013a3ba3 100755
--- a/.ci/build-efl-app.sh
+++ b/.ci/build-efl-app.sh
@@ -5,7 +5,7 @@ set -e
5cd / 5cd /
6 6
7#clone our examples from efl 7#clone our examples from efl
8git clone http://git.enlightenment.org/tools/examples.git/ 8git clone --depth=1 -b master http://git.enlightenment.org/tools/examples.git/
9 9
10cd examples/apps/c/life/ 10cd examples/apps/c/life/
11 11
diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh
new file mode 100755
index 0000000000..28897dafcc
--- /dev/null
+++ b/.ci/ci-configure.sh
@@ -0,0 +1,67 @@
1#!/bin/sh
2
3set -e
4
5CI_BUILD_TYPE="$1"
6
7export MAKEFLAGS="-j5"
8export EIO_MONITOR_POLL=1
9
10DEFAULT_LINUX_COPTS="--prefix=/usr/ --with-tests=regular --disable-cxx-bindings"
11
12WAYLAND_LINUX_COPTS=" --enable-wayland --enable-elput --enable-drm \
13--enable-wayland-ivi-shell --enable-gl-drm --with-opengl=es --enable-egl"
14
15MISC_LINUX_COPTS=" --enable-harfbuzz --enable-liblz4 --enable-image-loader-webp --enable-xinput22 \
16--enable-multisense --enable-lua-old --enable-xpresent --enable-hyphen \
17--enable-pixman --enable-pixman-font --enable-pixman-rect --enable-pixman-line \
18--enable-pixman-poly --enable-pixman-image --enable-pixman-image-scale-sample \
19--enable-image-loader-generic --enable-libuv --enable-tile-rotate --enable-vnc-server \
20--enable-sdl --enable-fb --enable-v4l2 --enable-cserve --enable-always-build-examples \
21--enable-ecore-wayland --enable-ecore-drm --enable-cancel-ok --with-crypto=gnutls \
22--enable-debug --disable-gstreamer1 --enable-gstreamer"
23
24MISC_DISABLED_LINUX_COPTS=" --disable-neon --disable-libeeze --disable-systemd --disable-magic-debug \
25--disable-valgrind --disable-gstreamer1 \
26--disable-fontconfig --disable-fribidi --disable-poppler --disable-spectre --disable-libraw \
27--disable-librsvg --disable-xcf --disable-libmount --disable-tslib --disable-audio \
28--disable-pulseaudio --disable-avahi --disable-xinput2 --disable-xim --disable-scim \
29--disable-ibus --disable-physics --disable-quick-launch --disable-elua"
30
31RELEASE_READY_LINUX_COPTS=" --with-profile=release"
32
33if [ "$DISTRO" != "" ] ; then
34 # Normal build test of all targets
35 OPTS="$DEFAULT_LINUX_COPTS"
36
37 if [ "$1" = "wayland" ]; then
38 OPTS="$OPTS $WAYLAND_LINUX_COPTS"
39 fi
40
41 if [ "$1" = "misc" ]; then
42 OPTS="$OPTS $MISC_LINUX_COPTS"
43 fi
44
45 if [ "$1" = "misc-disabled" ]; then
46 OPTS="$OPTS $MISC_DISABLED_LINUX_COPTS"
47 fi
48
49 if [ "$1" = "release-ready" ]; then
50 OPTS="$OPTS $RELEASE_READY_LINUX_COPTS"
51 fi
52 docker run --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 -v `pwd`:/src -w /src stefanschmidt1/ci-support-files:$DISTRO ./autogen.sh $OPTS
53else
54 OSX_COPTS="--disable-cxx-bindings"
55
56 # Prepare OSX env for build
57 mkdir -p ~/Library/LaunchAgents
58 ln -sfv /usr/local/opt/d-bus/*.plist ~/Library/LaunchAgents
59 launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
60 export PATH="$(brew --prefix gettext)/bin:$PATH"
61
62 export CFLAGS="-I/usr/local/opt/openssl/include $CFLAGS"
63 export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
64
65 # Normal build test of all targets
66 ./autogen.sh $OSX_COPTS
67fi
diff --git a/.ci/ci-linux-build.sh b/.ci/ci-linux-build.sh
deleted file mode 100755
index ddc33fef50..0000000000
--- a/.ci/ci-linux-build.sh
+++ /dev/null
@@ -1,63 +0,0 @@
1#!/bin/sh
2
3set -e
4
5CI_BUILD_TYPE=$1
6
7DEFAULT_COPTS="--prefix=/usr/ --with-tests=regular --disable-cxx-bindings"
8
9WAYLAND_COPTS="--with-tests=regular --enable-wayland --enable-elput --enable-drm \
10--enable-wayland-ivi-shell --enable-gl-drm --with-opengl=es --enable-egl"
11
12MISC_COPTS="--enable-harfbuzz --enable-liblz4 --enable-image-loader-webp --enable-xinput22 \
13--enable-multisense --enable-lua-old --enable-xpresent --enable-hyphen \
14--enable-pixman --enable-pixman-font --enable-pixman-rect --enable-pixman-line \
15--enable-pixman-poly --enable-pixman-image --enable-pixman-image-scale-sample \
16--enable-image-loader-generic --enable-libuv --enable-tile-rotate --enable-vnc-server \
17--enable-sdl --enable-fb --enable-v4l2 --enable-cserve --enable-always-build-examples \
18--enable-ecore-wayland --enable-ecore-drm --enable-cancel-ok --with-crypto=gnutls \
19--enable-debug --disable-gstreamer1 --enable-gstreamer"
20
21MISC_DISABLED_COPTS="--disable-neon --disable-libeeze --disable-systemd --disable-magic-debug \
22--disable-valgrind --disable-cxx-bindings --disable-gstreamer1 \
23--disable-fontconfig --disable-fribidi --disable-poppler --disable-spectre --disable-libraw \
24--disable-librsvg --disable-xcf --disable-libmount --disable-tslib --disable-audio \
25--disable-pulseaudio --disable-avahi --disable-xinput2 --disable-xim --disable-scim \
26--disable-ibus --disable-physics --disable-quick-launch --disable-elua"
27
28RELEASE_READY_COPTS="--with-profile=release"
29
30if [ "$CI_BUILD_TYPE" = "" ]; then
31 # Normal build test of all targets
32 ./autogen.sh $DEFAULT_COPTS
33 make
34 make check-build
35 make examples
36 make benchmark
37 make install
38 ./.ci/build-efl-app.sh
39fi
40
41if [ "$CI_BUILD_TYPE" = "wayland" ]; then
42 ./autogen.sh $WAYLAND_COPTS
43 make
44 make examples
45fi
46
47if [ "$CI_BUILD_TYPE" = "misc" ]; then
48 ./autogen.sh $MISC_COPTS
49 make
50 make examples
51fi
52
53if [ "$CI_BUILD_TYPE" = "misc-disabled" ]; then
54 ./autogen.sh $MISC_DISABLED_COPTS
55 make
56 make examples
57fi
58
59if [ "$CI_BUILD_TYPE" = "release-ready" ]; then
60 ./autogen.sh $RELEASE_READY_COPTS
61 make
62 make distcheck
63fi
diff --git a/.ci/ci-make-benchmark.sh b/.ci/ci-make-benchmark.sh
new file mode 100755
index 0000000000..bd63977724
--- /dev/null
+++ b/.ci/ci-make-benchmark.sh
@@ -0,0 +1,14 @@
1#!/bin/sh
2
3set -e
4
5if [ "$1" = "release-ready" ] ; then
6 exit 0
7fi
8
9if [ "$DISTRO" != "" ] ; then
10 docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make benchmark
11else
12 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
13 make benchmark
14fi
diff --git a/.ci/ci-make-checkbuild.sh b/.ci/ci-make-checkbuild.sh
new file mode 100755
index 0000000000..2cb852dba6
--- /dev/null
+++ b/.ci/ci-make-checkbuild.sh
@@ -0,0 +1,14 @@
1#!/bin/sh
2
3set -e
4
5if [ "$1" = "release-ready" ] ; then
6 exit 0
7fi
8
9if [ "$DISTRO" != "" ] ; then
10 docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make check-build
11else
12 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
13 make check-build
14fi
diff --git a/.ci/ci-make-distcheck.sh b/.ci/ci-make-distcheck.sh
new file mode 100755
index 0000000000..144b95782e
--- /dev/null
+++ b/.ci/ci-make-distcheck.sh
@@ -0,0 +1,14 @@
1#!/bin/sh
2
3set -e
4
5if [ "$1" != "release-ready" ] ; then
6 exit 0
7fi
8
9if [ "$DISTRO" != "" ] ; then
10 docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make distcheck
11else
12 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
13 make
14fi
diff --git a/.ci/ci-make-examples.sh b/.ci/ci-make-examples.sh
new file mode 100755
index 0000000000..4ab0f70b7b
--- /dev/null
+++ b/.ci/ci-make-examples.sh
@@ -0,0 +1,14 @@
1#!/bin/sh
2
3set -e
4
5if [ "$1" = "release-ready" ] ; then
6 exit 0
7fi
8
9if [ "$DISTRO" != "" ] ; then
10 docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make examples
11else
12 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
13 make examples
14fi
diff --git a/.ci/ci-make-install.sh b/.ci/ci-make-install.sh
new file mode 100755
index 0000000000..9856179080
--- /dev/null
+++ b/.ci/ci-make-install.sh
@@ -0,0 +1,14 @@
1#!/bin/sh
2
3set -e
4
5if [ "$1" = "release-ready" ] ; then
6 exit 0
7fi
8
9if [ "$DISTRO" != "" ] ; then
10 docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make install
11else
12 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
13 make install
14fi
diff --git a/.ci/ci-make.sh b/.ci/ci-make.sh
new file mode 100755
index 0000000000..8bd445f276
--- /dev/null
+++ b/.ci/ci-make.sh
@@ -0,0 +1,10 @@
1#!/bin/sh
2
3set -e
4
5if [ "$DISTRO" != "" ] ; then
6 docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) make
7else
8 export PATH="$(brew --prefix gettext)/bin:$PATH"
9 make
10fi
diff --git a/.ci/ci-osx-build.sh b/.ci/ci-osx-build.sh
deleted file mode 100755
index 4e7a0f05cc..0000000000
--- a/.ci/ci-osx-build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
1#!/bin/sh
2
3set -e
4
5COPTS="--disable-cxx-bindings"
6
7# Prepare OSX env for build
8mkdir -p ~/Library/LaunchAgents
9ln -sfv /usr/local/opt/d-bus/*.plist ~/Library/LaunchAgents
10launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
11export PATH="$(brew --prefix gettext)/bin:$PATH"
12
13export CFLAGS="-I/usr/local/opt/openssl/include $CFLAGS"
14export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
15
16# Normal build test of all targets
17./autogen.sh $COPTS $@
18make
19make examples
20#make benchmark
diff --git a/.travis.yml b/.travis.yml
index db48ce3840..817e4f177f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -52,6 +52,7 @@ matrix:
52 - os: osx 52 - os: osx
53 env: 53 env:
54 DISTRO=Archlinux 54 DISTRO=Archlinux
55
55 - os: linux 56 - os: linux
56 env: 57 env:
57 allow_failures: 58 allow_failures:
@@ -66,13 +67,30 @@ before_script:
66 if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then 67 if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
67 docker pull stefanschmidt1/ci-support-files:$DISTRO 68 docker pull stefanschmidt1/ci-support-files:$DISTRO
68 fi 69 fi
70 - |
71 if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
72 docker version
73 docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -w /src stefanschmidt1/ci-support-files:$DISTRO bash
74 cat $HOME/cid
75 fi
69 76
70script: 77script:
78 - .ci/ci-configure.sh "$CI_BUILD_TYPE"
79 - .ci/ci-make.sh "$CI_BUILD_TYPE"
80 - .ci/ci-make-checkbuild.sh "$CI_BUILD_TYPE"
81 - .ci/ci-make-examples.sh "$CI_BUILD_TYPE"
71 - | 82 - |
72 if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then 83 if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CI_BUILD_TYPE" == "" ]]; then
73 docker run -v `pwd`:/src -w /src stefanschmidt1/ci-support-files:$DISTRO /src/.ci/ci-linux-build.sh $CI_BUILD_TYPE 84 .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
85 fi
86 - .ci/ci-make-install.sh "$CI_BUILD_TYPE"
87 - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE"
88 - |
89 if [[ "$DISTRO" == "" ]] && [[ "$TRAVIS_OS_NAME" != "linux" ]] ; then
90 .ci/build-efl-app.sh
91 elif [[ "$CI_BUILD_TYPE" != "release-ready" ]] ; then
92 docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-efl-app.sh
74 fi 93 fi
75 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then .ci/ci-osx-build.sh ; fi
76 94
77after_success: 95after_success:
78 - | 96 - |