os: linux language: cpp compiler: gcc git: depth: 15 jobs: include: #Static Code Analysis - name: Check code style / Linting if: tag IS NOT present os: linux group: stable script: bash ./.ci/travis-lint.sh #Ubuntu Bionic (on Docker) - name: Ubuntu Bionic (Debug + Tests) if: tag IS NOT present os: linux 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 --test --debug - name: Ubuntu Bionic (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present os: linux 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 #macOS High Sierra - name: macOS High Sierra (Debug) if: tag IS NOT present os: osx osx_image: xcode10.1 cache: - ccache - directories: - $HOME/Library/Caches/Homebrew addons: homebrew: packages: - ccache - protobuf - qt - xz update: true script: bash ./.ci/travis-compile.sh --server --install --debug before_cache: - brew cleanup - name: macOS High Sierra (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present os: osx osx_image: xcode10.1 env: OSX_VERSION=10.13 cache: - ccache - directories: - $HOME/Library/Caches/Homebrew addons: homebrew: packages: - ccache - protobuf - qt - xz update: true script: bash ./.ci/travis-compile.sh --server --package "macos$OSX_VERSION" --release before_cache: - brew cleanup #macOS Mojave - name: macOS Mojave (Debug) if: tag IS NOT present os: osx osx_image: xcode11.1 cache: - ccache - directories: - $HOME/Library/Caches/Homebrew addons: homebrew: packages: - ccache - protobuf - qt - xz update: true script: bash ./.ci/travis-compile.sh --server --install --debug before_cache: - brew cleanup - name: macOS Mojave (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present os: osx osx_image: xcode11.1 env: OSX_VERSION=10.14 cache: - ccache - directories: - $HOME/Library/Caches/Homebrew addons: homebrew: packages: - ccache - protobuf - qt - xz update: true script: bash ./.ci/travis-compile.sh --server --package "macos$OSX_VERSION" --release --zip before_cache: - brew cleanup # Builds for pull requests skip the deployment step altogether deploy: # Deploy configuration for "beta" releases - provider: releases token: secure: mLMF41q7xgOR1sjczsilEy7HQis2PkZCzhfOGbn/8FoOQnmmPOZjrsdhn06ZSl3SFsbfCLuClDYXAbFscQmdgjcGN5AmHV+JYfW650QEuQa/f4/lQFsVRtEqUA1O3FQ0OuRxdpCfJubZBdFVH8SbZ93GLC5zXJbkWQNq+xCX1fU= name: "Cockatrice $TRAVIS_TAG" release_notes: "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 token: secure: mLMF41q7xgOR1sjczsilEy7HQis2PkZCzhfOGbn/8FoOQnmmPOZjrsdhn06ZSl3SFsbfCLuClDYXAbFscQmdgjcGN5AmHV+JYfW650QEuQa/f4/lQFsVRtEqUA1O3FQ0OuRxdpCfJubZBdFVH8SbZ93GLC5zXJbkWQNq+xCX1fU= 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 # Official Travis CI Build Config Explorer: https://config.travis-ci.com/explore # Travis CI config documentation: https://docs.travis-ci.com/user/customizing-the-build