summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: e501011b246eecf8a0b20bbc9e3a7bcc71ccbbc4 (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
language: c
cache:
  directories:
    - $HOME/cachedir
    - $HOME/.ccache
    - $HOME/autom4te.cache
sudo: required
dist: trusty

env:
  global:
    - MAKEFLAGS="-j5 -rR"
    - EIO_MONITOR_POLL=1
    - CC="ccache gcc"
    - CXX="ccache g++"

jobs:
  include:
    - os: osx
      env: BUILDSYSTEM=ninja
    #- os: linux
      #env: DISTRO=Fedora29-mingw CI_BUILD_TYPE=mingw
    - os: linux
      env: DISTRO=Fedora29 CI_BUILD_TYPE=options-enabled
    - os: linux
      env: DISTRO=Fedora29 CI_BUILD_TYPE=options-disabled
    - os: linux
      env: DISTRO=Fedora29 CI_BUILD_TYPE=wayland
    - os: linux
      env: DISTRO=Fedora29 CI_BUILD_TYPE=default
    - os: linux
      env: DISTRO=Fedora29 CI_BUILD_TYPE=options-enabled BUILDSYSTEM=ninja
    - os: linux
      env: DISTRO=Fedora29 CI_BUILD_TYPE=options-disabled BUILDSYSTEM=ninja
    - os: linux
      env: DISTRO=Fedora29 CI_BUILD_TYPE=wayland BUILDSYSTEM=ninja
    - os: linux
      env: DISTRO=Fedora29 CI_BUILD_TYPE=default BUILDSYSTEM=ninja
    - os: osx
      if: type = cron
    - os: linux
      if: type = cron
      env: DISTRO=Fedora29 CI_BUILD_TYPE=release-ready
    - os: linux
      if: type = cron
      env: DISTRO=Fedora29 CI_BUILD_TYPE=release-ready BUILDSYSTEM=ninja
    - os: linux
      if: type = cron
      env: DISTRO=Ubuntu1810
    - os: linux
      if: type = cron
      env: DISTRO=Debian96
    - os: linux
      if: type = cron
      env: DISTRO=Ubuntu1810 BUILDSYSTEM=ninja
    - os: linux
      if: type = cron
      env: DISTRO=Debian96 BUILDSYSTEM=ninja

services:
  - docker

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 -rR" --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

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