toxcore/.travis.yml
iphydf 7110f138e9
Run fewer Travis jobs during Pull Requests.
Still run all the jobs during cron and regular push to branch. We
disabled build for push to branch, so cron is the only place where all
builds are run. This also means we need to worry less about spending time
in nightly builds, because they occur only once a day.

See https://github.com/travis-ci/travis-ci/issues/9071
2018-01-15 23:07:54 +00:00

102 lines
2.9 KiB
YAML

# 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=autotools ENV=linux
compiler: gcc
- stage: "Stage 1"
env: JOB=toxcore ENV=linux
compiler: clang
- stage: "Stage 1"
env: JOB=toxcore ENV=windows ARCH=i686
group: deprecated-2017Q4
services:
- docker
- stage: "Stage 1"
if: type IN (push, api, cron)
env: JOB=toxcore ENV=windows ARCH=x86_64
group: deprecated-2017Q4
services:
- docker
- stage: "Stage 1"
if: type IN (push, api, cron)
env: JOB=toxcore ENV=freebsd
dist: trusty
sudo: required
install: other/travis/phase $JOB $ENV install stage1
script: other/travis/phase $JOB $ENV script stage1
- stage: "Stage 1"
if: type IN (push, api, cron)
env: JOB=tox-bootstrapd-docker ENV=linux
services:
- docker
sudo: required
- stage: "Stage 2"
if: type IN (push, api, cron)
env: JOB=toxcore ENV=freebsd
dist: trusty
sudo: required
install: other/travis/phase $JOB $ENV install stage2
- stage: "Stage 2"
if: type IN (push, api, cron)
env: JOB=toxcore ENV=osx RUN_TESTS=true
os: osx
fast_finish: true
addons:
apt:
sources:
- avsm
- hvr-ghc
packages:
- alex-3.1.7 # For hstox.
- cabal-install-1.18 # For hstox.
- check # For tests.
- ghc-7.8.4 # For hstox.
- happy-1.19.5 # For hstox.
- libcv-dev # For av_test.
- libhighgui-dev # For av_test.
- libopencv-contrib-dev # For av_test.
- libsndfile1-dev # For av_test.
- libvpx-dev # For toxav.
- opam # For apidsl and Frama-C.
- aspcud # For Opam
- portaudio19-dev # For av_test.
- texinfo # For libconfig.
cache:
directories:
# Although Travis documentation says not to rely on the value of $HOME, we
# rely on it here because cabal installs its packages there by default. If
# that ever changes, these values need to be updated.
# Note that we can't use shell expressions in these paths, so we can't ask
# cabal where its data is stored.
- $HOME/.cabal
- $HOME/.ghc
- $HOME/cache
- /opt/freebsd/cache
install: other/travis/phase $JOB $ENV install
script: other/travis/phase $JOB $ENV script
after_script: other/travis/phase $JOB $ENV after_script
after_failure: other/travis/phase $JOB $ENV after_failure
notifications:
irc:
channels:
- "chat.freenode.net#toktok-status"
template:
- "%{result} %{repository_name} %{build_url}"
- "#%{build_number} changes: %{compare_url}"
branches:
only:
- master