Merge pull request #186 from kiwix/docker_only_for_qt

Use Docker to build kiwix-desktop only.
This commit is contained in:
Matthieu Gautier 2018-06-15 16:28:57 +02:00 committed by GitHub
commit 9decfa6226
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 23 deletions

View File

@ -26,10 +26,16 @@ cache:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache
install: travis/install_extra_deps.sh
install: if [[ $TRAVIS_OS_NAME != "linux" || $DESKTOP_ONLY != 1 ]]; then travis/install_extra_deps.sh; fi
script:
- if [ $TRAVIS_OS_NAME == "osx" ] || [ $PLATFORM != "native_dyn" ]; then travis/compile_all.py; fi
- if [ $TRAVIS_OS_NAME == "linux" ] && [ $PLATFORM == "native_dyn" ]; then docker build -t kiwix/build . && docker run -e PLATFORM -e NIGHTLY_DATE -e TRAVIS_EVENT_TYPE -e TRAVIS_BUILD_DIR --device /dev/fuse --cap-add SYS_ADMIN kiwix/build; fi
- |
if [[ $TRAVIS_OS_NAME = "linux" && $DESKTOP_ONLY == 1 ]]
then
docker build -t kiwix/build -f travis/Dockerfile .
docker run -e PLATFORM -e NIGHTLY_DATE -e TRAVIS_EVENT_TYPE -e TRAVIS_BUILD_DIR -e DESKTOP_ONLY --device /dev/fuse --cap-add SYS_ADMIN kiwix/build
else
travis/compile_all.py
fi
after_failure: travis/upload_all_log.sh
deploy:
- provider: script
@ -72,6 +78,10 @@ matrix:
- env: PLATFORM="android_x86_64"
- env: PLATFORM="android"
include:
- env: PLATFORM="native_dyn" DESKTOP_ONLY=1
addons:
apt:
packages: []
- env: PLATFORM="native_static"
addons:
apt:

View File

@ -55,8 +55,8 @@ PACKAGE_NAME_MAPPERS = {
'COMMON': _debian_common + ['libbz2-dev', 'libmagic-dev'],
'zlib': ['zlib1g-dev'],
'uuid': ['uuid-dev'],
#'ctpp2': ['libctpp2-dev'],
#'ctpp2c': ['ctpp2-utils'],
'ctpp2': ['libctpp2-dev'],
'ctpp2c': ['ctpp2-utils'],
'libmicrohttpd': ['libmicrohttpd-dev', 'ccache'],
'qt' : ['libqt5gui5', 'qtbase5-dev', 'qt5-default'],
'qtwebengine' : ['qtwebengine5-dev']

View File

@ -9,8 +9,6 @@ RUN \
apt install -q -y --no-install-recommends \
# Base build tools
build-essential \
gcc-4.8 \
g++-4.8 \
automake \
libtool \
cmake \
@ -27,18 +25,13 @@ RUN \
wget \
unzip \
sudo \
# Win32 cross-compilation
g++-mingw-w64-i686 \
gcc-mingw-w64-i686 \
gcc-mingw-w64-base \
mingw-w64-tools \
# Some dependencies already packaged
libbz2-dev \
libmagic-dev \
zlib1g-dev \
uuid-dev \
# ctpp2-utils \
# libctpp2-dev \
ctpp2-utils \
libctpp2-dev \
libmicrohttpd-dev \
# Qt packages
libqt5gui5 \
@ -73,13 +66,12 @@ RUN \
mv ninja /home/travis/.local/bin ;\
rm ninja-linux.zip
ENV PATH="/home/travis/.local/bin:${PATH}"
ENV CC=gcc-4.8 CXX=g++-4.8 QMAKE_CC=gcc-4.8 QMAKE_CXX=g++-4.8
COPY . kiwix-build/
RUN sudo chown -R travis:travis /home/travis/kiwix-build
RUN pip3 install --user -e kiwix-build
ENV TRAVISCI_SSH_KEY /home/travis/kiwix-build/travis/travisci_builder_id_key
ENV TRAVIS_OS_NAME linux
ENV TRAVIS_OS_NAME linux_artful
CMD kiwix-build/travis/compile_all.py && kiwix-build/travis/deploy.sh

View File

@ -20,6 +20,7 @@ PLATFORM = environ['PLATFORM']
TRAVIS_OS_NAME = environ['TRAVIS_OS_NAME']
HOME = Path(os.path.expanduser('~'))
NIGHTLY_DATE = environ['NIGHTLY_DATE']
KIWIX_DESKTOP_ONLY = environ.get('DESKTOP_ONLY') == '1'
BASE_DIR = HOME/"BUILD_{}".format(PLATFORM)
SOURCE_DIR = HOME/"SOURCE"
@ -210,8 +211,10 @@ for p in (NIGHTLY_KIWIX_ARCHIVES_DIR,
make_release = re.fullmatch(r"[0-9]+\.[0-9]+\.[0-9]+", environ.get('TRAVIS_TAG', '')) is not None
# The first thing we need to do is to (potentially) download already compiled base dependencies.
base_dep_archive_name = "base_deps_{}_{}_{}.tar.gz".format(
TRAVIS_OS_NAME, PLATFORM, base_deps_meta_version)
base_dep_archive_name = "base_deps_{os}_{platform}_{version}.tar.gz".format(
os=TRAVIS_OS_NAME,
platform=PLATFORM,
version=base_deps_meta_version)
print_message("Getting archive {}", base_dep_archive_name)
try:
@ -239,8 +242,8 @@ if environ['TRAVIS_EVENT_TYPE'] != 'cron' and not make_release:
elif PLATFORM.startswith('native_'):
if TRAVIS_OS_NAME == "osx":
TARGETS = ('kiwix-lib', 'zim-tools', 'zimwriterfs')
elif PLATFORM == 'native_dyn':
TARGETS = ('kiwix-tools', 'kiwix-desktop', 'zim-tools', 'zimwriterfs')
elif PLATFORM == 'native_dyn' and KIWIX_DESKTOP_ONLY:
TARGETS = ('kiwix-desktop', )
else:
TARGETS = ('kiwix-tools', 'zim-tools', 'zimwriterfs')
else:
@ -252,6 +255,8 @@ if environ['TRAVIS_EVENT_TYPE'] != 'cron' and not make_release:
sys.exit(0)
TARGETS = tuple()
if PLATFORM.startswith('android'):
if make_release:
# (For now ?) kiwix-android follow it own release process.
@ -265,8 +270,9 @@ elif PLATFORM.startswith('native_'):
if TRAVIS_OS_NAME == "osx":
TARGETS = ('libzim', 'zimwriterfs', 'zim-tools', 'kiwix-lib')
else:
if make_release or PLATFORM == 'native_static':
TARGETS = ('libzim', 'zimwriterfs', 'zim-tools', 'kiwix-lib', 'kiwix-tools')
if PLATFORM == 'native_dyn' and KIWIX_DESKTOP_ONLY:
if not make_release:
TARGETS = ('kiwix-desktop', )
else:
TARGETS = ('libzim', 'kiwix-lib', 'kiwix-desktop', 'zimwriterfs', 'zim-tools', 'kiwix-tools')
else: