ci: travis: enable a meson/ninja build on osx
[platform/upstream/efl.git] / .travis.yml
1 language: c
2 cache:
3   directories:
4     - $HOME/cachedir
5     - $HOME/.ccache
6     - $HOME/autom4te.cache
7 sudo: required
8 dist: trusty
9
10 env:
11   global:
12     - MAKEFLAGS="-j5 -rR"
13     - EIO_MONITOR_POLL=1
14     - CC="ccache gcc"
15     - CXX="ccache g++"
16
17 jobs:
18   include:
19     - os: osx
20       env:
21         - BUILDSYSTEM=ninja
22     - env:
23       - os: linux
24       - DISTRO=Fedora28-mingw
25       - CI_BUILD_TYPE=mingw
26     - env:
27       - os: linux
28       - DISTRO=Fedora29
29       - CI_BUILD_TYPE=options-enabled
30     - env:
31       - os: linux
32       - DISTRO=Fedora29
33       - CI_BUILD_TYPE=options-disabled
34     - env:
35       - os: linux
36       - DISTRO=Fedora29
37       - CI_BUILD_TYPE=wayland
38     - env:
39       - os: linux
40       - DISTRO=Fedora29
41       - CI_BUILD_TYPE=default
42     - env:
43       - os: linux
44       - DISTRO=Fedora29
45       - CI_BUILD_TYPE=options-enabled
46       - BUILDSYSTEM=ninja
47     - env:
48       - os: linux
49       - DISTRO=Fedora29
50       - CI_BUILD_TYPE=options-disabled
51       - BUILDSYSTEM=ninja
52     - env:
53       - os: linux
54       - DISTRO=Fedora29
55       - CI_BUILD_TYPE=wayland
56       - BUILDSYSTEM=ninja
57     - env:
58       - os: linux
59       - DISTRO=Fedora29
60       - CI_BUILD_TYPE=default
61       - BUILDSYSTEM=ninja
62     - os: osx
63       if: type = cron
64     - if: type = cron
65       env:
66         - os: linux
67         - DISTRO=Ubuntu1810
68     - if: type = cron
69       env:
70         - os: linux
71         - DISTRO=Fedora29
72         - CI_BUILD_TYPE=release-ready
73     - if: type = cron
74       env:
75         - os: linux
76         - DISTRO=Debian96
77     - if: type = cron
78       env:
79         - os: linux
80         - DISTRO=Ubuntu1810
81         - BUILDSYSTEM=ninja
82     - if: type = cron
83       env:
84         - os: linux
85         - DISTRO=Fedora29
86         - CI_BUILD_TYPE=release-ready
87         - BUILDSYSTEM=ninja
88     - if: type = cron
89       env:
90         - os: linux
91         - DISTRO=Debian96
92         - BUILDSYSTEM=ninja
93
94 services:
95   - docker
96
97 before_install:
98   - |
99       if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
100         rm -rf $HOME/Library/Caches/Homebrew
101         rm -rf $HOME/cachedir/Homebrew/Homebrew
102         mv $HOME/cachedir/Homebrew $HOME/Library/Caches/Homebrew
103         .ci/ci-osx-deps.sh
104       fi
105
106 before_script:
107   - |
108       if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
109         docker pull stefanschmidt1/ci-support-files:$DISTRO
110       fi
111   - |
112       if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
113         docker version
114         docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
115         cp $HOME/cachedir/config.cache . || true
116       fi
117
118   - .ci/ci-ccache-stats.sh
119   - |
120        if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
121          cp $HOME/cachedir/config.cache . || true
122        fi
123
124
125 script:
126   - .ci/ci-configure.sh "$CI_BUILD_TYPE"
127   - .ci/ci-setup-ccache.sh "$CI_BUILD_TYPE"
128   - .ci/ci-make.sh "$CI_BUILD_TYPE"
129   - .ci/ci-make-checkbuild.sh "$CI_BUILD_TYPE"
130   #- .ci/ci-make-examples.sh "$CI_BUILD_TYPE"
131   - |
132       if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CI_BUILD_TYPE" == "" ]]; then
133           .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
134       fi
135   #- .ci/ci-make-install.sh "$CI_BUILD_TYPE"
136   - .ci/ci-make-check.sh "$CI_BUILD_TYPE"
137   - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE"
138   #- |
139       #if [[ "$DISTRO" == "" ]] && [[ "$TRAVIS_OS_NAME" != "linux" ]] ; then
140         #true
141       #elif [[ "$CI_BUILD_TYPE" != "release-ready" ]] ; then
142         #docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-efl-app.sh
143       #fi
144 before_cache:
145   - .ci/ci-ccache-stats.sh
146   - |
147        mkdir -p $HOME/cachedir
148        if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
149          sudo chown travis:travis $HOME/.ccache
150          mkdir -p $HOME/cachedir/
151          sudo cp config.cache $HOME/cachedir/
152          sudo chown travis:travis $HOME/cachedir/config.cache
153          sudo chown travis:travis $HOME/autom4te.cache
154        else
155          cp config.cache $HOME/cachedir
156          mv $HOME/Library/Caches/Homebrew $HOME/cachedir/Homebrew
157        fi
158
159 notifications:
160   irc:
161     channels:
162       - "chat.freenode.net#edevelop"
163     on_success: change
164     on_failure: always
165     on_cancel: never
166     template:
167       - "TravisCI build %{build_number} in branch %{branch}: %{result} - %{message} (%{elapsed_time})"
168       - "Commit: %{commit_subject} (%{commit}) from %{author}"
169       - "Change view : %{compare_url}"
170       - "Build details : %{build_url}"