sfizz/.travis.yml
2020-09-26 20:44:48 +02:00

198 lines
5.9 KiB
YAML

language: cpp
os: linux
dist: bionic
cache:
directories:
- vst/download/
# macOS Homebrew
- $HOME/Library/Caches/Homebrew
- /usr/local/Homebrew
jobs:
include:
- name: "clang-tidy checks"
stage: "Tests"
addons:
apt:
packages:
- clang-tidy
- wget
- unzip
- libsndfile-dev
install: .travis/download_vst_sdk.sh
script: scripts/run_clang_tidy.sh
- name: "Linux amd64 tests"
arch: amd64
addons:
apt:
packages:
- libjack-jackd2-dev
- libsndfile1-dev
install: .travis/download_cmake.sh
script: .travis/script_test.sh
- name: "Linux arm64 tests"
arch: arm64
addons:
apt:
packages:
- libjack-jackd2-dev
- libsndfile1-dev
install: .travis/download_cmake.sh
script: .travis/script_test.sh
- name: "macOS"
stage: "Build"
os: osx
env:
- INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}"
install: .travis/install_osx.sh
script: .travis/script_osx.sh
after_success: .travis/prepare_osx.sh
before_cache:
- brew cleanup
# Credit https://discourse.brew.sh/t/best-practice-for-homebrew-on-travis-brew-update-is-5min-to-build-time/5215/9
# Cache only .git files under "/usr/local/Homebrew" so "brew update" does not take 5min every build
- find /usr/local/Homebrew \! -regex ".+\.git.+" -delete
- name: "MOD devices arm"
env:
- CONTAINER=jpcima/mod-plugin-builder
- CROSS_COMPILE=moddevices-arm
- INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-moddevices"
before_install: .travis/before_install_moddevices.sh
install: .travis/install_moddevices.sh
script: .travis/script_moddevices.sh
after_success: .travis/prepare_tarball.sh
- name: "Windows mingw32"
env:
- CROSS_COMPILE=mingw32
- CONTAINER=archlinux
- INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-mingw32"
before_install: .travis/before_install_mingw.sh
install: .travis/install_mingw.sh
script: .travis/script_mingw.sh
after_success: .travis/prepare_tarball.sh
- name: "Windows mingw64"
env:
- CROSS_COMPILE=mingw64
- CONTAINER=archlinux
- INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-mingw64"
before_install: .travis/before_install_mingw.sh
install: .travis/install_mingw.sh
script: .travis/script_mingw.sh
after_success: .travis/prepare_tarball.sh
- name: "Linux amd64 library"
arch: amd64
env:
- INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}"
addons:
apt:
packages:
- libjack-jackd2-dev
- libsndfile1-dev
install: .travis/download_cmake.sh
script: .travis/script_library.sh
after_success: .travis/prepare_tarball.sh
- name: "Linux arm64 library"
arch: arm64
env:
- INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}"
addons:
apt:
packages:
- libjack-jackd2-dev
- libsndfile1-dev
install: .travis/download_cmake.sh
script: .travis/script_library.sh
after_success: .travis/prepare_tarball.sh
- name: "Linux arm64 static plugins"
arch: arm64
env:
- INSTALL_DIR="sfizz-plugins-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}"
- ENABLE_VST_PLUGIN=OFF
- ENABLE_LV2_UI=OFF
addons:
apt:
packages:
- libjack-jackd2-dev
- libsndfile1-dev
install:
- .travis/download_cmake.sh
- .travis/download_static_libs.sh
script: .travis/script_plugins.sh
after_success: .travis/prepare_tarball.sh
- name: "Linux amd64 static plugins"
env:
- INSTALL_DIR="sfizz-plugins-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}"
- ENABLE_VST_PLUGIN=ON
- ENABLE_LV2_UI=ON
addons:
apt:
packages:
- libjack-jackd2-dev
- libsndfile1-dev
- libcairo2-dev
- libfontconfig1-dev
- libx11-xcb-dev
- libxcb-util-dev
- libxcb-cursor-dev
- libxcb-xkb-dev
- libxkbcommon-dev
- libxkbcommon-x11-dev
- libxcb-keysyms1-dev
install:
- .travis/download_cmake.sh
- .travis/download_static_libs.sh
script: .travis/script_plugins.sh
after_success: .travis/prepare_tarball.sh
- stage: "Deploy"
name: "Source packaging"
if: (tag IS present) AND (branch = master) AND (type = push)
env:
- INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-src"
addons:
apt:
packages:
- python-pip
install: sudo pip install git-archive-all
script: git-archive-all --prefix="sfizz-${TRAVIS_BRANCH}/" -9 "${INSTALL_DIR}.tar.gz"
- name: "Generate documentation"
if: (tag IS present) AND (branch = master) AND (type = push)
addons:
apt:
packages:
- doxygen
- cmake
- libsndfile-dev
install: skip
script: .travis/update_dox.sh
- name: "Discord Webhook"
install: skip
script: bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh success
# Signal discord on failure
after_failure:
- bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh failure
deploy:
edge: true
provider: releases
file: "${INSTALL_DIR}.tar.gz"
token:
secure: jBIMWMPva8OazC8Wnqc2vqATa3exjvGDGvejEu6fgwt/BMDkgJCsJ7gS3ITpYFuO0HoHtLGfTVrFcZIE+agGVRdRGRni5xZRp5Vuf9hvLf8hCTaxkS/HYoliYYPp9FLY6J4yq9mp/R/QyGrwgssQEjhYlI2GL4+lJzt750AcmYibnQo2AMe5SSOp3q8KdLBG1vca1o1BZWBhW/S7l2hA1aJ7y1ytwm0ETIdrTZHxgfz7bqdqQcw/Ytqjm1rgzty6iQKX3B/InaZNB6CqXy6FoGLf771lery8nWJbjTjKYD4QK2NelExldyp1vrdHGvknWguFk+8vlQ16Dt0+R7Byr/LOPRLTCf/T+IehMQGtVA9/gjrkH8LqHy9oVFB+33p11gGu3h6hvg7yB6z3sSck0u4FHjrlpNd5XmmCsKQVQ9vI1cPPkVkbMHIewc7uOu+bD6cmotFj1vJ9UYesvN6n4siyCiPOIhgV9++bjcyiLqX3DWP5UWyZ9/VT8bz5VcxUdJnEYtdNPx4x5pRW4081VUjIf2EmHhQTrjb1iz6FAGwNU/fpefA8x+bBxXP9MkFFgU0tbCDKw2y6o0GOXX82mZr/IB0/DIBg7UllTzCBKTuiJQV1prFPlZLc6V22H5ozAXHgu3E+qNjvHoMsoYjGssX3+AYHwu8isBINo/gGo6Y=
on:
repo: "sfztools/sfizz"
tags: true
condition: ${TRAVIS_TAG} =~ ^v?[0-9]