summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Schmidt <s.schmidt@samsung.com>2019-12-30 11:38:03 -0500
committerMike Blumenkrantz <zmike@samsung.com>2019-12-30 11:39:39 -0500
commit2af38d11ed58d95f050dc08cc038d6b4aa30ac91 (patch)
tree897a9196ffefcaf3fba49e79e6aaec30fa9edc1d
parent9c41899a085faadaaa1d0ed1decee3457eedbc46 (diff)
ci: create a daily build to run with coverage enabled and upload to codecov
Summary: For this we bring back a native Linux build on the Travis with Ubuntu bionic. This allows use easy integration with codecov as Travis and Codecov have figured out all details. This means we need to be a bit more careful with our $DIST checks as empty no longer means osx. It could as well be the Linux job. Covergae reports will show up here: https://codecov.io/gh/Enlightenment/efl We are starting with 36%. Time to improve. :-) Fixes: T7910 Reviewers: bu5hm4n, zmike Reviewed By: zmike Subscribers: cedric Tags: #efl Differential Revision: https://phab.enlightenment.org/D10867
-rwxr-xr-x.ci/ci-build-test.sh4
-rwxr-xr-x.ci/ci-ccache-stats.sh2
-rwxr-xr-x.ci/ci-configure.sh4
-rwxr-xr-x.ci/ci-make-benchmark.sh2
-rwxr-xr-x.ci/ci-make-check.sh14
-rwxr-xr-x.ci/ci-make-distcheck.sh2
-rwxr-xr-x.ci/ci-make-install.sh4
-rwxr-xr-x.ci/ci-make.sh5
-rwxr-xr-x.ci/ci-setup-ccache.sh2
-rwxr-xr-x.ci/ubuntu-bionic-install-deps.sh4
-rw-r--r--.travis.yml9
11 files changed, 42 insertions, 10 deletions
diff --git a/.ci/ci-build-test.sh b/.ci/ci-build-test.sh
index 05b753e38b..949fede958 100755
--- a/.ci/ci-build-test.sh
+++ b/.ci/ci-build-test.sh
@@ -3,14 +3,14 @@
3set -e 3set -e
4. .ci/travis.sh 4. .ci/travis.sh
5 5
6if [ "$1" = "coverity" ] || [ "$1" = "mingw" ] || [ "$1" = "release-ready" ] ; then 6if [ "$1" = "codecov" ] || [ "$1" = "coverity" ] || [ "$1" = "mingw" ] || [ "$1" = "release-ready" ]; then
7 exit 0 7 exit 0
8fi 8fi
9 9
10travis_fold compile_test compile_test 10travis_fold compile_test compile_test
11if [ "$DISTRO" != "" ] ; then 11if [ "$DISTRO" != "" ] ; then
12 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-example.sh 12 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-example.sh
13else 13elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
14 exit 0 14 exit 0
15 #FIXME: we don't install efl_ui.pc on osx? 15 #FIXME: we don't install efl_ui.pc on osx?
16 export PATH="$(brew --prefix gettext)/bin:$PATH" 16 export PATH="$(brew --prefix gettext)/bin:$PATH"
diff --git a/.ci/ci-ccache-stats.sh b/.ci/ci-ccache-stats.sh
index 76b270488c..42f44397d0 100755
--- a/.ci/ci-ccache-stats.sh
+++ b/.ci/ci-ccache-stats.sh
@@ -4,6 +4,6 @@ set -e
4 4
5if [ "$DISTRO" != "" ] ; then 5if [ "$DISTRO" != "" ] ; then
6 docker exec $(cat $HOME/cid) ccache -s 6 docker exec $(cat $HOME/cid) ccache -s
7else 7elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
8 ccache -s 8 ccache -s
9fi 9fi
diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh
index f9a58604e7..773e536aa1 100755
--- a/.ci/ci-configure.sh
+++ b/.ci/ci-configure.sh
@@ -100,4 +100,8 @@ elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
100 travis_fold meson meson 100 travis_fold meson meson
101 mkdir build && meson build -Dopengl=full -Decore-imf-loaders-disabler=scim,ibus -Dx11=false -Davahi=false -Deeze=false -Dsystemd=false -Dnls=false -Dcocoa=true -Demotion-loaders-disabler=gstreamer1,libvlc,xine 101 mkdir build && meson build -Dopengl=full -Decore-imf-loaders-disabler=scim,ibus -Dx11=false -Davahi=false -Deeze=false -Dsystemd=false -Dnls=false -Dcocoa=true -Demotion-loaders-disabler=gstreamer1,libvlc,xine
102 travis_endfold meson 102 travis_endfold meson
103else
104 travis_fold meson meson
105 mkdir build && meson build -Decore-imf-loaders-disabler=scim,ibus -Db_coverage=true
106 travis_endfold meson
103fi 107fi
diff --git a/.ci/ci-make-benchmark.sh b/.ci/ci-make-benchmark.sh
index 17455c1e52..58871dc52f 100755
--- a/.ci/ci-make-benchmark.sh
+++ b/.ci/ci-make-benchmark.sh
@@ -8,7 +8,7 @@ fi
8travis_fold benchmark "ninja benchmark" 8travis_fold benchmark "ninja benchmark"
9if [ "$DISTRO" != "" ] ; then 9if [ "$DISTRO" != "" ] ; then
10 docker exec --env EIO_MONITOR_POLL=1 --env ELM_ENGINE=buffer $(cat $HOME/cid) ninja benchmark -C build 10 docker exec --env EIO_MONITOR_POLL=1 --env ELM_ENGINE=buffer $(cat $HOME/cid) ninja benchmark -C build
11else 11elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
12 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH" 12 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
13 ninja benchmark -C build 13 ninja benchmark -C build
14fi 14fi
diff --git a/.ci/ci-make-check.sh b/.ci/ci-make-check.sh
index 44f5f2bf90..afbf74da35 100755
--- a/.ci/ci-make-check.sh
+++ b/.ci/ci-make-check.sh
@@ -3,11 +3,23 @@
3set -e 3set -e
4. .ci/travis.sh 4. .ci/travis.sh
5 5
6if [ "$1" = "release-ready" ] || [ "$1" = "mingw" ] || [ "$1" = "coverity" ] || [ "$1" = "options-enabled" ] || [ "$1" = "options-disabled" ]; then 6if [ "$1" = "release-ready" ] || [ "$1" = "mingw" ] || [ "$1" = "coverity" ] || [ "$1" = "options-enabled" ] || [ "$1" = "options-disabled" ] ; then
7 exit 0 7 exit 0
8fi 8fi
9 9
10NUM_TRIES=5 10NUM_TRIES=5
11
12if [ "$1" = "codecov" ] ; then
13 for tries in $(seq 1 ${NUM_TRIES}); do
14 meson test -t 120 -C build --wrapper dbus-launch && break
15 cat build/meson-logs/testlog-dbus-launch.txt
16 if [ $tries != ${NUM_TRIES} ] ; then echo "tests failed, trying again!" ; fi
17 false
18 done
19 curl -s https://codecov.io/bash | bash -s -
20 exit 0
21fi
22
11travis_fold check "ninja test" 23travis_fold check "ninja test"
12if [ "$DISTRO" != "" ] ; then 24if [ "$DISTRO" != "" ] ; then
13 for tries in $(seq 1 ${NUM_TRIES}); do 25 for tries in $(seq 1 ${NUM_TRIES}); do
diff --git a/.ci/ci-make-distcheck.sh b/.ci/ci-make-distcheck.sh
index 22f441c14b..414c8abd1a 100755
--- a/.ci/ci-make-distcheck.sh
+++ b/.ci/ci-make-distcheck.sh
@@ -14,7 +14,7 @@ if [ "$DISTRO" != "" ] ; then
14 --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \ 14 --env CFLAGS="-fdirectives-only" --env CXXFLAGS="-fdirectives-only" \
15 --env LD="ld.gold" $(cat $HOME/cid) dbus-launch ninja -C build dist || \ 15 --env LD="ld.gold" $(cat $HOME/cid) dbus-launch ninja -C build dist || \
16 (sudo cat efl-*/_build/sub/src/test-suite.log; false) 16 (sudo cat efl-*/_build/sub/src/test-suite.log; false)
17else 17elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
18 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH" 18 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
19 ninja -C build dist 19 ninja -C build dist
20fi 20fi
diff --git a/.ci/ci-make-install.sh b/.ci/ci-make-install.sh
index 157f1a2401..0a4cea890a 100755
--- a/.ci/ci-make-install.sh
+++ b/.ci/ci-make-install.sh
@@ -14,8 +14,10 @@ if [ "$1" = "asan" ]; then
14fi 14fi
15if [ "$DISTRO" != "" ] ; then 15if [ "$DISTRO" != "" ] ; then
16 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build install 16 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build install
17else 17elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
18 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH" 18 export PATH="/usr/local/opt/ccache/libexec:$(brew --prefix gettext)/bin:$PATH"
19 ninja -C build install 19 ninja -C build install
20else
21 sudo ninja -C build install
20fi 22fi
21travis_endfold install 23travis_endfold install
diff --git a/.ci/ci-make.sh b/.ci/ci-make.sh
index 167e2369cb..5611f5dca4 100755
--- a/.ci/ci-make.sh
+++ b/.ci/ci-make.sh
@@ -12,6 +12,7 @@ if [ "$1" = "asan" ]; then
12 docker exec --env EIO_MONITOR_POLL=1 --env ASAN_OPTIONS=abort_on_error=0 --env LSAN_OPTIONS=suppressions=/src/.ci/asan-ignore-leaks.supp $(cat $HOME/cid) ninja -C build 12 docker exec --env EIO_MONITOR_POLL=1 --env ASAN_OPTIONS=abort_on_error=0 --env LSAN_OPTIONS=suppressions=/src/.ci/asan-ignore-leaks.supp $(cat $HOME/cid) ninja -C build
13 exit $? 13 exit $?
14fi 14fi
15
15if [ "$DISTRO" != "" ] ; then 16if [ "$DISTRO" != "" ] ; then
16 if [ "$1" = "coverity" ] ; then 17 if [ "$1" = "coverity" ] ; then
17 docker exec --env EIO_MONITOR_POLL=1 --env PATH="/src/cov-analysis-linux64-2019.03/bin:$PATH" $(cat $HOME/cid) sh -c "cov-build --dir cov-int ninja -C build" 18 docker exec --env EIO_MONITOR_POLL=1 --env PATH="/src/cov-analysis-linux64-2019.03/bin:$PATH" $(cat $HOME/cid) sh -c "cov-build --dir cov-int ninja -C build"
@@ -20,8 +21,10 @@ if [ "$DISTRO" != "" ] ; then
20 else 21 else
21 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build 22 docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) ninja -C build
22 fi 23 fi
23else 24elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
24 export PATH="$(brew --prefix gettext)/bin:$PATH" 25 export PATH="$(brew --prefix gettext)/bin:$PATH"
25 ninja -C build 26 ninja -C build
27else
28 ninja -C build
26fi 29fi
27travis_endfold ninja 30travis_endfold ninja
diff --git a/.ci/ci-setup-ccache.sh b/.ci/ci-setup-ccache.sh
index ab7d3b8613..810720e28d 100755
--- a/.ci/ci-setup-ccache.sh
+++ b/.ci/ci-setup-ccache.sh
@@ -5,7 +5,7 @@ set -e
5if [ "$DISTRO" != "" ] ; then 5if [ "$DISTRO" != "" ] ; then
6 docker exec $(cat $HOME/cid) sh -c ".ci/docker-ccache-setup.sh $1" 6 docker exec $(cat $HOME/cid) sh -c ".ci/docker-ccache-setup.sh $1"
7 docker exec $(cat $HOME/cid) ccache -pz 7 docker exec $(cat $HOME/cid) ccache -pz
8else 8elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
9 cp .ci/ccache.conf ~/.ccache 9 cp .ci/ccache.conf ~/.ccache
10 sed -iE '/^base_dir/d' ~/.ccache/ccache.conf 10 sed -iE '/^base_dir/d' ~/.ccache/ccache.conf
11 echo "base_dir = $pwd" >> ~/.ccache/ccache.conf 11 echo "base_dir = $pwd" >> ~/.ccache/ccache.conf
diff --git a/.ci/ubuntu-bionic-install-deps.sh b/.ci/ubuntu-bionic-install-deps.sh
new file mode 100755
index 0000000000..70f0287f09
--- /dev/null
+++ b/.ci/ubuntu-bionic-install-deps.sh
@@ -0,0 +1,4 @@
1#!/bin/sh
2sudo apt-get update -y
3sudo 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 systemd ccache git binutils-gold python3-pip ninja-build dbus-x11 libavahi-client-dev python3-setuptools
4pip3 install meson
diff --git a/.travis.yml b/.travis.yml
index 15a5aeb93c..1af79309c3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,7 @@ cache:
5 directories: 5 directories:
6 - $HOME/cachedir 6 - $HOME/cachedir
7 - $HOME/.ccache 7 - $HOME/.ccache
8dist: trusty 8dist: bionic
9 9
10osx_image: xcode10.2 10osx_image: xcode10.2
11 11
@@ -74,6 +74,9 @@ jobs:
74 - os: linux 74 - os: linux
75 if: type = cron 75 if: type = cron
76 env: DISTRO=Fedora31 CI_BUILD_TYPE=asan 76 env: DISTRO=Fedora31 CI_BUILD_TYPE=asan
77 - os: linux
78 if: type = cron
79 env: CI_BUILD_TYPE=codecov
77 80
78services: 81services:
79 - docker 82 - docker
@@ -94,6 +97,10 @@ before_script:
94 docker version 97 docker version
95 docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash 98 docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
96 fi 99 fi
100 - |
101 if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" == "" ]]; then
102 .ci/ubuntu-bionic-install-deps.sh
103 fi
97 - .ci/ci-ccache-stats.sh 104 - .ci/ci-ccache-stats.sh
98 105
99script: 106script: