os: linux dist: bionic 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 language: minimal env: NAME=UbuntuBionic CACHE=$HOME/$NAME cache: directories: - $CACHE before_install: source .ci/travis-docker.sh --build script: RUN --server --test --debug - name: Ubuntu Bionic (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present os: linux services: docker language: minimal env: NAME=UbuntuBionic CACHE=$HOME/$NAME cache: directories: - $CACHE before_install: source .ci/travis-docker.sh --build script: RUN --server --package $NAME --release #Debian Buster (on Docker) - name: Debian Buster (Compile) if: tag IS NOT present os: linux services: docker language: minimal env: NAME=DebianBuster CACHE=$HOME/$NAME cache: directories: - $CACHE before_install: source .ci/travis-docker.sh --build script: RUN --server - name: Debian Buster (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present os: linux services: docker language: minimal env: NAME=DebianBuster CACHE=$HOME/$NAME cache: directories: - $CACHE before_install: source .ci/travis-docker.sh --build script: RUN --server --package $NAME --release #Fedora 31 (on docker) - name: Fedora 31 (Compile) if: tag IS NOT present services: docker language: minimal env: NAME=Fedora31 CACHE=$HOME/$NAME cache: directories: - $CACHE before_install: source .ci/travis-docker.sh --build script: RUN --server - name: Fedora 31 (Release) if: (branch = master AND NOT type = pull_request) OR tag IS present services: docker language: minimal env: NAME=Fedora31 CACHE=$HOME/$NAME cache: directories: - $CACHE before_install: source .ci/travis-docker.sh --build script: RUN --server --package $NAME RPM --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 #Arch Linux (on Docker) (allow failures) - name: Arch Linux (Debug) if: tag IS NOT present os: linux services: docker language: minimal env: NAME=ArchLinux CACHE=$HOME/$NAME cache: directories: - $CACHE before_install: source .ci/travis-docker.sh --build script: RUN --server --debug allow_failures: # Arch linux is always the latest version and by definition not stable - name: Arch Linux (Debug) # Report build completion even if optional builds are not completed fast_finish: true # 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" skip_cleanup: true 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= 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 # 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