add docker compilation to travis (#3433)

* add docker compilation to travis

add new matrix entry in .travis.yml for compiling on 18.04
add Dockerfile in .ci to build ubuntu 18.04 inside docker
remove release entry for uvuntu 16.04 to not conflict
refactor .travis.yml
refactor travis-comile.sh
merge travis-dependencies.sh into the travis.yml
remove travis-dependencies.sh

* enable debugging on travis-compile.sh

* set ubuntu16 buildtype to "Debug"

set buildtype Debug for as requirement for "test"
add --debug and --release flags to travis-compile.sh

* make output prettier

edit the format warning message and clangify.sh output

* fix clangify.sh

fix --cf-version flag
fix directory argument parsing
add directory parsing details to --help
add examples to --help
This commit is contained in:
ebbit1q 2018-11-16 15:44:22 +01:00 committed by ctrlaltca
parent f70699d3de
commit 72ed98e404
5 changed files with 206 additions and 105 deletions

View file

@ -4,50 +4,65 @@ cache: ccache
matrix:
include:
#Ubuntu
- name: Ubuntu (Debug)
#Ubuntu Bionic (on docker)
- name: Ubuntu Bionic (Debug)
if: tag IS NOT present
services: docker
before_install: docker build -t img .ci
script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src" img
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
script: docker build -t img .ci &&
docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src" img
bash .ci/travis-compile.sh --server --package --release
#Ubuntu Xenial (Debug only)
- name: Ubuntu Xenial (Debug)
if: tag IS NOT present
os: linux
dist: xenial
group: stable
env: BUILDTYPE=Debug
- name: Ubuntu (Release)
if: (branch = master AND NOT type = pull_request) OR tag IS present
os: linux
dist: xenial
group: stable
env: BUILDTYPE=Release
addons:
apt:
packages:
- libprotobuf-dev
- protobuf-compiler
- 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
#macOS
- name: macOS (Debug)
if: tag IS NOT present
os: osx
osx_image: xcode8
env: BUILDTYPE=Debug
before_install:
- brew update
- brew update
- brew install ccache
- brew unlink python # protobuf python2 install requires this link to be removed
- brew install protobuf
- brew install qt
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: xcode8
env: BUILDTYPE=Release
#install dependencies for container-based "linux" builds
addons:
apt:
packages:
- libprotobuf-dev
- protobuf-compiler
- qt5-default
- qttools5-dev
- qttools5-dev-tools
- qtmultimedia5-dev
- libqt5multimedia5-plugins
- libqt5svg5-dev
- libqt5sql5-mysql
- libqt5websockets5-dev
before_install: bash ./.ci/travis-dependencies.sh
script: bash ./.ci/travis-compile.sh
before_install:
- brew update
- brew update
- brew install ccache
- brew unlink python # protobuf python2 install requires this link to be removed
- brew install protobuf
- brew install qt
script: bash ./.ci/travis-compile.sh --server --package --release
# Builds for pull requests skip the deployment step altogether