summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 416aecc7be0d012423a3a2433c9d2bc7f791a014 (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
# For Pull Requests, we build only the first three jobs: autotools on Linux,
# cmake on Linux, and cmake on Windows 32 bit.
#
# For branch builds and cron builds (once a day), we build all the jobs. This
# is achieved using the "if: type IN (push, api, cron)" fields in the matrix.

language: c

matrix:
  include:
  - stage: "Stage 1"
    env: JOB=cmake-linux
    compiler: gcc
    addons:
      apt:
        packages:
        - libconfig-dev         # For tox-bootstrapd.
        - libcv-dev             # For av_test.
        - libhighgui-dev        # For av_test.
        - libopencv-contrib-dev # For av_test.
        - libopus-dev           # For toxav.
        - libsndfile1-dev       # For av_test.
        - libgtest-dev          # For unit tests.
        - libvpx-dev            # For toxav.
        - portaudio19-dev       # For av_test.
    install:       .travis/$JOB install
    script:        .travis/$JOB script
    after_script:  .travis/upload-coverage
  - stage: "Stage 1"
    env: JOB=autotools-linux
    compiler: clang
    addons:
      apt:
        packages:
        - libconfig-dev         # For tox-bootstrapd.
        - libopus-dev           # For toxav.
        - libvpx-dev            # For toxav.
    install:       .travis/$JOB install
    script:        .travis/$JOB script
  - stage: "Stage 1"
    if: type IN (push, api, cron)
    env: JOB=cmake-win32
    services: [docker]
    install:       .travis/$JOB install
    script:        .travis/$JOB script
  - stage: "Stage 1"
    if: type IN (push, api, cron)
    env: JOB=cmake-win64
    services: [docker]
    install:       .travis/$JOB install
    script:        .travis/$JOB script
  - stage: "Stage 1"
    if: type IN (push, api, cron)
    env: JOB=cmake-freebsd
    sudo: required
    install:       .travis/$JOB-stage1 install
    script:        .travis/$JOB-stage1 script
  - stage: "Stage 1"
    if: type IN (push, api, cron)
    env: JOB=tox-bootstrapd-docker
    services: [docker]
    script:        .travis/$JOB
  - stage: "Stage 2"
    if: type IN (push, api, cron)
    env: JOB=cmake-freebsd
    sudo: required
    install:       .travis/$JOB-stage2 install
    script:        .travis/$JOB-stage2 script
  - stage: "Stage 2"
    if: type IN (push, api, cron)
    env: JOB=cmake-osx
    os: osx
    install:       .travis/$JOB install
    script:        .travis/$JOB script
  fast_finish: true

cache:
  directories:
  - $HOME/cache
  - /opt/freebsd/cache

notifications:
  irc:
    channels:
    - "chat.freenode.net#toktok-status"
    template:
    - "%{result} %{repository_name} %{build_url}"
    - "#%{build_number} changes: %{compare_url}"