summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: fa61e42884872ee43b4635990e767d75961981b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
language: c
cache:
  directories:
    - $HOME/cachedir
    - $HOME/.ccache
    - $HOME/autom4te.cache
sudo: required
dist: trusty

os:
  - linux
  - osx

env:
  global:
    - MAKEFLAGS="-j5"
    - EIO_MONITOR_POLL=1
    - CC="ccache gcc"
    - CXX="ccache g++"
  matrix:
    -
    - DISTRO=Ubuntu1804
    - DISTRO=Fedora28 CI_BUILD_TYPE=wayland
    - DISTRO=Fedora28 CI_BUILD_TYPE=misc
    - DISTRO=Fedora28 CI_BUILD_TYPE=misc-disabled
    - DISTRO=Fedora28 CI_BUILD_TYPE=release-ready
    - DISTRO=Debian91
    - DISTRO=Archlinux

services:
  - docker

matrix:
  fast_finish: true
  exclude:
    - os: osx
      env:
        DISTRO=Ubuntu1804
    - os: osx
      env:
        DISTRO=Fedora28
        CI_BUILD_TYPE=wayland
    - os: osx
      env:
        DISTRO=Fedora28
        CI_BUILD_TYPE=misc
    - os: osx
      env:
        DISTRO=Fedora28
        CI_BUILD_TYPE=misc-disabled
    - os: osx
      env:
        DISTRO=Fedora28
        CI_BUILD_TYPE=release-ready
    - os: osx
      env:
        DISTRO=Debian91
    - os: osx
      env:
        DISTRO=Archlinux

    - os: linux
      env:

before_install:
  - |
      if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
        rm -rf $HOME/Library/Caches/Homebrew
        rm -rf $HOME/cachedir/Homebrew/Homebrew
        mv $HOME/cachedir/Homebrew $HOME/Library/Caches/Homebrew
        .ci/ci-osx-deps.sh
      fi

before_script:
  - |
      if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
        docker pull stefanschmidt1/ci-support-files:$DISTRO
      fi
  - |
      if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
        docker version
        docker run --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
        cp $HOME/cachedir/config.cache . || true
      fi

  - .ci/ci-ccache-stats.sh
  - |
       if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
         cp $HOME/cachedir/config.cache . || true
       fi

script:
  - .ci/ci-configure.sh "$CI_BUILD_TYPE"
  - .ci/ci-setup-ccache.sh "$CI_BUILD_TYPE"
  - .ci/ci-make.sh "$CI_BUILD_TYPE"
  - .ci/ci-make-checkbuild.sh "$CI_BUILD_TYPE"
  - .ci/ci-make-examples.sh "$CI_BUILD_TYPE"
  - |
      if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CI_BUILD_TYPE" == "" ]]; then
          .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
      fi
  - .ci/ci-make-install.sh "$CI_BUILD_TYPE"
  - .ci/ci-make-check.sh "$CI_BUILD_TYPE"
  - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE"
  - |
      if [[ "$DISTRO" == "" ]] && [[ "$TRAVIS_OS_NAME" != "linux" ]] ; then
        true
      elif [[ "$CI_BUILD_TYPE" != "release-ready" ]] ; then
        docker exec --env MAKEFLAGS="-j5" --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) .ci/build-efl-app.sh
      fi
before_cache:
  - .ci/ci-ccache-stats.sh
  - |
       mkdir -p $HOME/cachedir
       if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
         sudo chown travis:travis $HOME/.ccache
         mkdir -p $HOME/cachedir/
         sudo cp config.cache $HOME/cachedir/
         sudo chown travis:travis $HOME/cachedir/config.cache
         sudo chown travis:travis $HOME/autom4te.cache
       else
         cp config.cache $HOME/cachedir
         mv $HOME/Library/Caches/Homebrew $HOME/cachedir/Homebrew
       fi

after_success:
  - |
      if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
        docker login -u stefanschmidt1 -p "$DOCKER_PASSWORD"
        docker tag stefanschmidt1/ci-support-files:$DISTRO stefanschmidt1/ci-support-files:$DISTRO-$TRAVIS_BUILD_NUMBER
        docker push stefanschmidt1/ci-support-files:$DISTRO
        docker push stefanschmidt1/ci-support-files:$DISTRO-$TRAVIS_BUILD_NUMBER
      fi

notifications:
  irc:
    channels:
      - "chat.freenode.net#edevelop"
    on_success: change
    on_failure: always
    template:
      - "TravisCI build %{build_number} in branch %{branch}: %{result} - %{message}"
      - "Commit: %{commit_subject} (%{commit}) from %{author}"
      - "Change view : %{compare_url}"
      - "Build details : %{build_url}"