servatrice/.travis.yml

276 lines
7.3 KiB
YAML

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 --debug --test
- 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
#Ubuntu Focal (on Docker)
- name: Ubuntu Focal (Compile)
if: tag IS NOT present
os: linux
services: docker
language: minimal
env: NAME=UbuntuFocal CACHE=$HOME/$NAME
cache:
directories:
- $CACHE
before_install: source .ci/travis-docker.sh --build
script: RUN --server
- name: Ubuntu Focal (Release)
if: (branch = master AND NOT type = pull_request) OR tag IS present
os: linux
services: docker
language: minimal
env: NAME=UbuntuFocal 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 32 (on Docker)
- name: Fedora 32 (Compile)
if: tag IS NOT present
services: docker
language: minimal
env: NAME=Fedora32 CACHE=$HOME/$NAME
cache:
directories:
- $CACHE
before_install: source .ci/travis-docker.sh --build
script: RUN --server
- name: Fedora 32 (Release)
if: (branch = master AND NOT type = pull_request) OR tag IS present
services: docker
language: minimal
env: NAME=Fedora32 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 Catalina
- name: macOS Catalina (Debug)
if: tag IS NOT present
os: osx
osx_image: xcode11.6
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 Catalina (Release)
if: (branch = master AND NOT type = pull_request) OR tag IS present
os: osx
osx_image: xcode11.6
env: OSX_VERSION=10.15
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