summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 15a5aeb93c49b5ab3b9968365a20f0cb4954d293 (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
version: ~> 1.0

language: c
cache:
  directories:
    - $HOME/cachedir
    - $HOME/.ccache
dist: trusty

osx_image: xcode10.2

addons:
  homebrew:
    packages:
      - gettext
      - check
      - bullet
      - dbus
      - fontconfig
      - freetype
      - fribidi
      - gst-plugins-good
      - gstreamer
      - luajit
      - openssl
      - webp
      - libsndfile
      - glib
      - libspectre
      - libraw
      - librsvg
      - poppler
      - lz4
      - pulseaudio
      - ccache
      - ninja
      - python3
      - libffi

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

jobs:
  include:
    - os: osx
    - os: linux
      env: DISTRO=Fedora31-mingw CI_BUILD_TYPE=mingw
    - os: linux
      env: DISTRO=Fedora31 CI_BUILD_TYPE=options-enabled
    - os: linux
      env: DISTRO=Fedora31 CI_BUILD_TYPE=options-disabled
    - os: linux
      env: DISTRO=Fedora31 CI_BUILD_TYPE=wayland
    - os: linux
      env: DISTRO=Fedora31 CI_BUILD_TYPE=default
    - os: linux
      if: type = cron
      env: DISTRO=Fedora31 CI_BUILD_TYPE=release-ready
    - os: linux
      if: type = cron
      env: DISTRO=Ubuntu1804
    - os: linux
      if: type = cron
      env: DISTRO=Ubuntu1910
    - os: linux
      if: type = cron
      env: DISTRO=Debian96
    - os: linux
      if: type = cron
      env: DISTRO=Fedora31 CI_BUILD_TYPE=coverity
    - os: linux
      if: type = cron
      env: DISTRO=Fedora31 CI_BUILD_TYPE=asan

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
        pip3 install meson
      fi

before_script:
  - |
      if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" != "" ]]; then
        docker pull stefanschmidt1/ci-support-files:$DISTRO
        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
      fi
  - .ci/ci-ccache-stats.sh

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-install.sh "$CI_BUILD_TYPE"
  - .ci/ci-make-benchmark.sh "$CI_BUILD_TYPE"
  - .ci/ci-make-check.sh "$CI_BUILD_TYPE"
  - .ci/ci-make-distcheck.sh "$CI_BUILD_TYPE"
  - .ci/ci-build-test.sh "$CI_BUILD_TYPE"

before_cache:
  - .ci/ci-ccache-stats.sh
  - |
       mkdir -p $HOME/cachedir
       if [[ "$TRAVIS_OS_NAME" == "linux" ]] ; then
         sudo chown travis:travis $HOME/.ccache
       else
         mv $HOME/Library/Caches/Homebrew $HOME/cachedir/Homebrew
       fi

notifications:
  irc:
    channels:
      - "chat.freenode.net#edevelop"
    on_success: change
    on_failure: always
    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}"