language: cpp compiler: gcc git: depth: 15 matrix: include: #Ubuntu Xenial (Debug only) - name: Ubuntu Xenial (Debug) if: tag IS NOT present os: linux dist: xenial group: stable cache: ccache addons: apt: packages: - libprotobuf-dev - protobuf-compiler - liblzma-dev - qt5-default - qttools5-dev - qttools5-dev-tools - qtmultimedia5-dev - libqt5multimedia5-plugins - libqt5svg5-dev - libqt5sql5-mysql - libqt5websockets5-dev script: bash ./.ci/travis-compile.sh --format --server --test --debug #Ubuntu Bionic (on docker) - name: Ubuntu Bionic (Debug) if: tag IS NOT present services: docker env: NAME=UbuntuBionic cache: directories: - $HOME/$NAME/ before_install: docker build -t "cockatrice_${NAME,,}" .ci/$NAME && mkdir -p $HOME/$NAME/.ccache script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src" --mount "type=bind,source=$HOME/$NAME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache" "cockatrice_${NAME,,}" bash .ci/travis-compile.sh --server --debug - name: Ubuntu Bionic (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present services: docker env: NAME=UbuntuBionic cache: directories: - $HOME/$NAME/ before_install: docker build -t "cockatrice_${NAME,,}" .ci/$NAME && mkdir -p $HOME/$NAME/.ccache script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src" --mount "type=bind,source=$HOME/$NAME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache" "cockatrice_${NAME,,}" bash .ci/travis-compile.sh --server --package "$NAME" --release #Fedora 29 (on docker) - name: Fedora 29 (Debug) if: tag IS NOT present services: docker env: NAME=Fedora29 cache: directories: - $HOME/$NAME/ before_install: docker build -t "cockatrice_${NAME,,}" .ci/$NAME && mkdir -p $HOME/$NAME/.ccache script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src" --mount "type=bind,source=$HOME/$NAME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache" "cockatrice_${NAME,,}" bash .ci/travis-compile.sh --server --debug - name: Fedora 29 (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present services: docker env: NAME=Fedora29 cache: directories: - $HOME/$NAME/ before_install: docker build -t "cockatrice_${NAME,,}" .ci/$NAME && mkdir -p $HOME/$NAME/.ccache script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src" --mount "type=bind,source=$HOME/$NAME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache" "cockatrice_${NAME,,}" bash .ci/travis-compile.sh --server --package "$NAME" "RPM" --release #macOS - name: macOS (Debug) if: tag IS NOT present os: osx osx_image: xcode10.1 cache: ccache addons: homebrew: packages: - ccache - protobuf - qt - xz update: true script: bash ./.ci/travis-compile.sh --server --install --debug - name: macOS (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present os: osx osx_image: xcode9.2 cache: ccache addons: homebrew: packages: - ccache - protobuf - qt - xz update: true script: bash ./.ci/travis-compile.sh --server --package "$TRAVIS_OS_NAME" --release # Builds for pull requests skip the deployment step altogether deploy: # Deploy configuration for "beta" releases - provider: releases api_key: secure: mLMF41q7xgOR1sjczsilEy7HQis2PkZCzhfOGbn/8FoOQnmmPOZjrsdhn06ZSl3SFsbfCLuClDYXAbFscQmdgjcGN5AmHV+JYfW650QEuQa/f4/lQFsVRtEqUA1O3FQ0OuRxdpCfJubZBdFVH8SbZ93GLC5zXJbkWQNq+xCX1fU= skip_cleanup: true name: "Cockatrice $TRAVIS_TAG" body: "Beta release of Cockatrice" file_glob: true file: "build/Cockatrice-*" overwrite: true draft: false prerelease: true on: tags: true repo: Cockatrice/Cockatrice condition: $TRAVIS_TAG =~ ([0-9]|[1-9][0-9])(\.([0-9]|[1-9][0-9])){2}-beta(\.([2-9]|[1-9][0-9]))?$ # regex to match semver naming convention for beta pre-releases # Deploy configuration for "stable" releases - provider: releases api_key: secure: mLMF41q7xgOR1sjczsilEy7HQis2PkZCzhfOGbn/8FoOQnmmPOZjrsdhn06ZSl3SFsbfCLuClDYXAbFscQmdgjcGN5AmHV+JYfW650QEuQa/f4/lQFsVRtEqUA1O3FQ0OuRxdpCfJubZBdFVH8SbZ93GLC5zXJbkWQNq+xCX1fU= skip_cleanup: true file_glob: true file: "build/Cockatrice-*" overwrite: true draft: false prerelease: false on: tags: true repo: Cockatrice/Cockatrice condition: $TRAVIS_TAG =~ ([0-9]|[1-9][0-9])(\.([0-9]|[1-9][0-9])){2}$ # regex to match semver naming convention for stable full releases notifications: email: false webhooks: urls: - https://webhooks.gitter.im/e/d94969c3b01b22cbdcb7 on_success: change on_failure: change on_start: never on_cancel: change on_error: change # Announcements of build image updates: https://docs.travis-ci.com/user/build-environment-updates/ # For precise versions of preinstalled tools on the VM, check “Build system information” in the build log! # Official validator for ".travis.yml" config file: https://yaml.travis-ci.org # Travis CI config documentation: https://docs.travis-ci.com/user/customizing-the-build