--- # 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 jobs list. language: c dist: xenial os: linux jobs: include: - stage: "Stage 1" env: JOB=cmake-linux compiler: gcc addons: apt: packages: - libconfig-dev # For tox-bootstrapd. - libopus-dev # For toxav. - libsodium-dev # For toxcore. - libgtest-dev # For unit tests. - libvpx-dev # For toxav. - ninja-build - pylint3 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" env: JOB=tox-bootstrapd-docker services: [docker] script: .travis/$JOB - 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 install: .travis/$JOB-stage1 install script: .travis/$JOB-stage1 script - stage: "Stage 1" if: type IN (push, api, cron) env: JOB=cmake-osx os: osx install: .travis/$JOB install script: .travis/$JOB script - stage: "Stage 2" if: type IN (push, api, cron) env: JOB=cmake-freebsd install: .travis/$JOB-stage2 install script: .travis/$JOB-stage2 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}" # Only build pull requests and releases, don't build master on pushes, # except through api or cron. if: type IN (pull_request, api, cron) OR tag IS present