toxcore/.travis.yml
2018-01-25 17:27:26 -05:00

115 lines
3.7 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=toxcore ENV=linux
compiler: clang
addons:
apt: &apt-dependencies
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.
- stage: "Stage 1"
if: type IN (push, api, cron)
env: JOB=autotools ENV=linux
compiler: gcc
addons:
apt: *apt-dependencies
- stage: "Stage 1"
if: type IN (push, api, cron)
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=installmd ENV=windows SUPPORT_ARCH_i686=true SUPPORT_ARCH_x86_64=false SUPPORT_TEST=true ENABLE_ARCH_i686=true ENABLE_ARCH_x86_64=false ENABLE_TEST=true ALLOW_TEST_FAILURE=true
services:
- docker
- stage: "Stage 1"
if: type IN (push, api, cron)
env: JOB=installmd ENV=windows SUPPORT_ARCH_i686=false SUPPORT_ARCH_x86_64=true SUPPORT_TEST=true ENABLE_ARCH_i686=false ENABLE_ARCH_x86_64=true ENABLE_TEST=true ALLOW_TEST_FAILURE=true
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
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