ci: add ccache support
[platform/upstream/efl.git] / .travis.yml
1 language: c
2 cache: ccache
3 sudo: required
4 dist: trusty
5
6 os:
7   - linux
8   - osx
9
10 env:
11   global:
12     - MAKEFLAGS="-j5"
13     - EIO_MONITOR_POLL=1
14     - CC="ccache gcc"
15     - CXX="ccache g++"
16   matrix:
17     -
18     - DISTRO=Ubuntu1804
19     - DISTRO=Fedora28 CI_BUILD_TYPE=wayland
20     - DISTRO=Fedora28 CI_BUILD_TYPE=misc
21     - DISTRO=Fedora28 CI_BUILD_TYPE=misc-disabled
22     - DISTRO=Fedora28 CI_BUILD_TYPE=release-ready
23     - DISTRO=Debian91
24     - DISTRO=Archlinux
25
26 services:
27   - docker
28
29 matrix:
30   fast_finish: true
31   exclude:
32     - os: osx
33       env:
34         DISTRO=Ubuntu1804
35     - os: osx
36       env:
37         DISTRO=Fedora28
38         CI_BUILD_TYPE=wayland
39     - os: osx
40       env:
41         DISTRO=Fedora28
42         CI_BUILD_TYPE=misc
43     - os: osx
44       env:
45         DISTRO=Fedora28
46         CI_BUILD_TYPE=misc-disabled
47     - os: osx
48       env:
49         DISTRO=Fedora28
50         CI_BUILD_TYPE=release-ready
51     - os: osx
52       env:
53         DISTRO=Debian91
54     - os: osx
55       env:
56         DISTRO=Archlinux
57
58     - os: linux
59       env:
60   allow_failures:
61     - os: linux
62       env: DISTRO=Fedora28 CI_BUILD_TYPE=release-ready
63
64 before_install:
65   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then .ci/ci-osx-deps.sh ; fi
66
67 before_script:
68   - |
69       if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
70         docker pull stefanschmidt1/ci-support-files:$DISTRO
71       fi
72   - |
73       if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
74         docker version
75         docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
76         cat $HOME/cid
77       fi
78
79   - .ci/ci-ccache-stats.sh
80
81 script:
82   - .ci/ci-configure.sh "$CI_BUILD_TYPE"
83   - .ci/ci-setup-ccache.sh "$CI_BUILD_TYPE"
84   - .ci/ci-make.sh "$CI_BUILD_TYPE"
85   - .ci/ci-make-checkbuild.sh "$CI_BUILD_TYPE"
86   - .ci/ci-make-examples.sh "$CI_BUILD_TYPE"
87   - |
88       if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CI_BUILD_TYPE" == "" ]]; then
89           .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
90       fi
91   - .ci/ci-make-install.sh "$CI_BUILD_TYPE"
92   - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE"
93   - |
94       if [[ "$DISTRO" == "" ]] && [[ "$TRAVIS_OS_NAME" != "linux" ]] ; then
95         .ci/build-efl-app.sh
96       elif [[ "$CI_BUILD_TYPE" != "release-ready" ]] ; then
97         docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-efl-app.sh
98       fi
99 before_cache:
100   - .ci/ci-ccache-stats.sh
101   - |
102        if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
103          sudo chown travis:travis $HOME/.ccache
104        else
105        fi
106
107 after_success:
108   - |
109       if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
110         docker login -u stefanschmidt1 -p "$DOCKER_PASSWORD"
111         docker tag stefanschmidt1/ci-support-files:$DISTRO stefanschmidt1/ci-support-files:$DISTRO-$TRAVIS_BUILD_NUMBER
112         docker push stefanschmidt1/ci-support-files:$DISTRO
113         docker push stefanschmidt1/ci-support-files:$DISTRO-$TRAVIS_BUILD_NUMBER
114       fi
115
116 notifications:
117   irc:
118     channels:
119       - "chat.freenode.net#edevelop"
120     on_success: change
121     on_failure: always
122     template:
123       - "TravisCI build %{build_number} in branch %{branch}: %{result} - %{message}"
124       - "Commit: %{commit_subject} (%{commit}) from %{author}"
125       - "Change view : %{compare_url}"
126       - "Build details : %{build_url}"