ci: automatically clear config.cache if it cannot be used
[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 os:
11   - linux
12   - osx
13
14 env:
15   global:
16     - MAKEFLAGS="-j5 -rR"
17     - EIO_MONITOR_POLL=1
18     - CC="ccache gcc"
19     - CXX="ccache g++"
20   matrix:
21     -
22     - DISTRO=Ubuntu1804
23     - DISTRO=Fedora28 CI_BUILD_TYPE=wayland
24     - DISTRO=Fedora28 CI_BUILD_TYPE=misc
25     - DISTRO=Fedora28 CI_BUILD_TYPE=misc-disabled
26     - DISTRO=Fedora28 CI_BUILD_TYPE=release-ready
27     - DISTRO=Debian91
28     - DISTRO=Archlinux
29
30 services:
31   - docker
32
33 matrix:
34   fast_finish: true
35   exclude:
36     - os: osx
37       env:
38         DISTRO=Ubuntu1804
39     - os: osx
40       env:
41         DISTRO=Fedora28
42         CI_BUILD_TYPE=wayland
43     - os: osx
44       env:
45         DISTRO=Fedora28
46         CI_BUILD_TYPE=misc
47     - os: osx
48       env:
49         DISTRO=Fedora28
50         CI_BUILD_TYPE=misc-disabled
51     - os: osx
52       env:
53         DISTRO=Fedora28
54         CI_BUILD_TYPE=release-ready
55     - os: osx
56       env:
57         DISTRO=Debian91
58     - os: osx
59       env:
60         DISTRO=Archlinux
61
62     - os: linux
63       env:
64
65 before_install:
66   - |
67       if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
68         rm -rf $HOME/Library/Caches/Homebrew
69         rm -rf $HOME/cachedir/Homebrew/Homebrew
70         mv $HOME/cachedir/Homebrew $HOME/Library/Caches/Homebrew
71         .ci/ci-osx-deps.sh
72       fi
73
74 before_script:
75   - |
76       if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
77         docker pull stefanschmidt1/ci-support-files:$DISTRO
78       fi
79   - |
80       if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
81         docker version
82         docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
83         cp $HOME/cachedir/config.cache . || true
84       fi
85
86   - .ci/ci-ccache-stats.sh
87   - |
88        if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
89          cp $HOME/cachedir/config.cache . || true
90        fi
91
92
93 script:
94   - .ci/ci-configure.sh "$CI_BUILD_TYPE"
95   - .ci/ci-setup-ccache.sh "$CI_BUILD_TYPE"
96   - .ci/ci-make.sh "$CI_BUILD_TYPE"
97   - .ci/ci-make-checkbuild.sh "$CI_BUILD_TYPE"
98   - .ci/ci-make-examples.sh "$CI_BUILD_TYPE"
99   - |
100       if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CI_BUILD_TYPE" == "" ]]; then
101           .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
102       fi
103   - .ci/ci-make-install.sh "$CI_BUILD_TYPE"
104   - .ci/ci-make-check.sh "$CI_BUILD_TYPE"
105   - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE"
106   - |
107       if [[ "$DISTRO" == "" ]] && [[ "$TRAVIS_OS_NAME" != "linux" ]] ; then
108         true
109       elif [[ "$CI_BUILD_TYPE" != "release-ready" ]] ; then
110         docker exec --env MAKEFLAGS="-j5 -rR" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-efl-app.sh
111       fi
112 before_cache:
113   - .ci/ci-ccache-stats.sh
114   - |
115        mkdir -p $HOME/cachedir
116        if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
117          sudo chown travis:travis $HOME/.ccache
118          mkdir -p $HOME/cachedir/
119          sudo cp config.cache $HOME/cachedir/
120          sudo chown travis:travis $HOME/cachedir/config.cache
121          sudo chown travis:travis $HOME/autom4te.cache
122        else
123          cp config.cache $HOME/cachedir
124          mv $HOME/Library/Caches/Homebrew $HOME/cachedir/Homebrew
125        fi
126
127 after_success:
128   - |
129       if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
130         docker login -u stefanschmidt1 -p "$DOCKER_PASSWORD"
131         docker tag stefanschmidt1/ci-support-files:$DISTRO stefanschmidt1/ci-support-files:$DISTRO-$TRAVIS_BUILD_NUMBER
132         docker push stefanschmidt1/ci-support-files:$DISTRO
133         docker push stefanschmidt1/ci-support-files:$DISTRO-$TRAVIS_BUILD_NUMBER
134       fi
135
136 notifications:
137   irc:
138     channels:
139       - "chat.freenode.net#edevelop"
140     on_success: change
141     on_failure: always
142     template:
143       - "TravisCI build %{build_number} in branch %{branch}: %{result} - %{message} (%{elapsed_time})"
144       - "Commit: %{commit_subject} (%{commit}) from %{author}"
145       - "Change view : %{compare_url}"
146       - "Build details : %{build_url}"