summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 7974cf5f38fc0d373ffd078f44cf08e329409311 (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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
language: c
cache:
  directories:
    - $HOME/cachedir
    - $HOME/.ccache
    - $HOME/autom4te.cache
sudo: required
dist: trusty

os:
  - linux
  - osx

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

jobs:
  include:
    - env:
      - os: linux
      - DISTRO=Fedora28-mingw
      - CI_BUILD_TYPE=mingw
    - env:
      - os: linux
      - DISTRO=Fedora28
      - CI_BUILD_TYPE=options-enabled
    - env:
      - os: linux
      - DISTRO=Fedora28
      - CI_BUILD_TYPE=options-disabled
    - env:
      - os: linux
      - DISTRO=Fedora28
      - CI_BUILD_TYPE=options-enabled
      - BUILDSYSTEM=ninja
    - env:
      - os: linux
      - DISTRO=Fedora28
      - CI_BUILD_TYPE=options-disabled
      - BUILDSYSTEM=ninja
    - if: type = cron
      env:
        - os: linux
        - DISTRO=Ubuntu1804
    - if: type = cron
      env:
        - os: linux
        - DISTRO=Fedora28
        - CI_BUILD_TYPE=release-ready
    - if: type = cron
      env:
        - os: linux
        - DISTRO=Debian91
    - if: type = cron
      env:
        - os: linux
        - DISTRO=Ubuntu1804
        - BUILDSYSTEM=ninja
    - if: type = cron
      env:
        - os: linux
        - DISTRO=Fedora28
        - CI_BUILD_TYPE=release-ready
        - BUILDSYSTEM=ninja
    - if: type = cron
      env:
        - os: linux
        - DISTRO=Debian91
        - BUILDSYSTEM=ninja
  exclude:
    - os: linux

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

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