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

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

osx_image: xcode11.3

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
    update: true

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

jobs:
  include:
    - os: linux
      env: DISTRO=Fedora32-mingw CI_BUILD_TYPE=mingw
    - os: linux
      env: DISTRO=Fedora32 CI_BUILD_TYPE=options-enabled
    - os: linux
      env: DISTRO=Fedora32 CI_BUILD_TYPE=options-disabled
    - os: linux
      env: DISTRO=Fedora32 CI_BUILD_TYPE=wayland
    - os: linux
      env: DISTRO=Fedora32 CI_BUILD_TYPE=default
    - os: linux
      if: type = cron
      env: DISTRO=Fedora32 CI_BUILD_TYPE=release-ready
    - os: linux
      if: type = cron
      env: DISTRO=Ubuntu2004
    - os: linux
      if: type = cron
      env: DISTRO=Ubuntu1910
    - os: linux
      if: type = cron
      env: DISTRO=Debian103
    - os: linux
      if: type = cron
      env: DISTRO=Fedora31 CI_BUILD_TYPE=coverity
    - os: linux
      if: type = cron
      env: DISTRO=Fedora32 CI_BUILD_TYPE=asan
    - os: linux
      if: type = cron
      env: CI_BUILD_TYPE=codecov
    - os: linux
      if: type = cron
      arch: arm64
      env: CI_BUILD_TYPE=default
    - os: linux
      if: type = cron
      arch: ppc64le
      env: CI_BUILD_TYPE=no-bindings
    - os: linux
      if: type = cron
      arch: s390x
      env: CI_BUILD_TYPE=no-bindings

services:
  - docker

before_install:
  - export -f travis_nanoseconds
  - export -f travis_fold
  - export -f travis_time_start
  - export -f travis_time_finish
  - |
      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 --cap-add SYS_PTRACE --cidfile $HOME/cid -t -d -v `pwd`:/src -v $HOME/.ccache:/root/.ccache -w /src stefanschmidt1/ci-support-files:$DISTRO bash
      fi
  - |
      if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$DISTRO" == "" ]]; then
        .ci/ubuntu-bionic-install-deps.sh
      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-exactness.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}"