add fedora docker image to travis compilation (#3447)

* add fedora docker image to travis compilation

fixes #1746

* add dockerfile

* would you like to please install for me? [y/n]

* remove bc dependency

* save cache separately for different docker builds

* add development packages to fedora dockerfile

* add package names

* use env values to make these all look the same

* set docker image name correctly

* add missing dependency

* minor oversight, add %% to remove all braces in check schema
This commit is contained in:
ebbit1q 2018-11-25 11:25:47 +01:00 committed by ctrlaltca
parent 06081bd940
commit f1563c5604
4 changed files with 81 additions and 24 deletions

17
.ci/Fedora29/Dockerfile Normal file
View file

@ -0,0 +1,17 @@
FROM fedora:29
RUN dnf install -y \
@development-tools \
ccache \
cmake \
desktop-file-utils \
file \
gcc-c++ \
hicolor-icon-theme \
libappstream-glib \
protobuf-devel \
qt5-{qttools,qtsvg,qtmultimedia,qtwebsockets}-devel \
sqlite-devel \
wget \
zlib-devel \
&& dnf clean all

View file

@ -1,7 +1,6 @@
FROM ubuntu:bionic FROM ubuntu:bionic
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
bc \
build-essential \ build-essential \
clang-format \ clang-format \
file \ file \

View file

@ -1,33 +1,15 @@
language: cpp language: cpp
compiler: gcc compiler: gcc
cache: ccache
matrix: matrix:
include: include:
#Ubuntu Bionic (on docker)
- name: Ubuntu Bionic (Debug)
if: tag IS NOT present
services: docker
before_install: docker build -t img .ci/UbuntuBionic
script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src"
--mount "type=bind,source=$HOME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache"
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
before_install: docker build -t img .ci/UbuntuBionic
script: docker run --mount "type=bind,source=$(pwd),target=/src" -w="/src"
--mount "type=bind,source=$HOME/.ccache,target=/.ccache" -e "CCACHE_DIR=/.ccache"
img
bash .ci/travis-compile.sh --server --package "Ubuntu18.04" --release
#Ubuntu Xenial (Debug only) #Ubuntu Xenial (Debug only)
- name: Ubuntu Xenial (Debug) - name: Ubuntu Xenial (Debug)
if: tag IS NOT present if: tag IS NOT present
os: linux os: linux
dist: xenial dist: xenial
group: stable group: stable
cache: ccache
addons: addons:
apt: apt:
packages: packages:
@ -43,27 +25,84 @@ matrix:
- libqt5websockets5-dev - libqt5websockets5-dev
script: bash ./.ci/travis-compile.sh --format --server --test --debug 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" --release
#macOS #macOS
- name: macOS (Debug) - name: macOS (Debug)
if: tag IS NOT present if: tag IS NOT present
os: osx os: osx
osx_image: xcode8 osx_image: xcode8
cache: ccache
before_install: before_install:
- brew update - brew update
- brew install ccache - brew install ccache
- brew install protobuf --without-python@2 - brew install protobuf --without-python@2
- brew install qt - brew install qt
script: bash ./.ci/travis-compile.sh --server --install --debug script: bash ./.ci/travis-compile.sh --server --install --debug
- name: macOS (Release) - name: macOS (Release)
if: (branch = master AND NOT type = pull_request) OR tag IS present if: (branch = master AND NOT type = pull_request) OR tag IS present
os: osx os: osx
osx_image: xcode8 osx_image: xcode8
cache: ccache
before_install: before_install:
- brew update - brew update
- brew install ccache - brew install ccache
- brew install protobuf --without-python@2 - brew install protobuf --without-python@2
- brew install qt - brew install qt
script: bash ./.ci/travis-compile.sh --server --package "" --release script: bash ./.ci/travis-compile.sh --server --package "$TRAVIS_OS_NAME" --release
# Builds for pull requests skip the deployment step altogether # Builds for pull requests skip the deployment step altogether

View file

@ -2,13 +2,15 @@
set -e set -e
schema_ver="$(grep 'INSERT INTO cockatrice_schema_version' servatrice/servatrice.sql | sed 's/.*VALUES(//' | sed 's/).*//')" version_line="$(grep 'INSERT INTO cockatrice_schema_version' servatrice/servatrice.sql)"
version_line="${version_line#*VALUES(}"
declare -i schema_ver="${version_line%%)*}"
latest_migration="$(ls -1 servatrice/migrations/ | tail -n1)" latest_migration="$(ls -1 servatrice/migrations/ | tail -n1)"
xtoysql="${latest_migration#servatrice_}" xtoysql="${latest_migration#servatrice_}"
xtoy="${xtoysql%.sql}" xtoy="${xtoysql%.sql}"
old_ver="$(echo ${xtoy%%_to_*} | bc)" declare -i old_ver="10#${xtoy%_to_*}" #declare as integer with base 10, numbers with a leading 0 are normally interpreted as base 16
new_ver="$(echo ${xtoy##*_to_} | bc)" declare -i new_ver="10#${xtoy#*_to_}"
if ((old_ver >= new_ver)); then if ((old_ver >= new_ver)); then
echo "New version $new_ver is not newer than $old_ver" echo "New version $new_ver is not newer than $old_ver"