From 37ebcf83aebed5153ba3f42113b2b1e9d10fa471 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Fri, 15 Jun 2018 15:18:58 +0200 Subject: [PATCH] Use Docker to build kiwix-desktop only. Keep default travis env for everything else. --- .travis.yml | 18 ++++++++++++++---- kiwixbuild/packages.py | 4 ++-- Dockerfile => travis/Dockerfile | 14 +++----------- travis/compile_all.py | 18 ++++++++++++------ 4 files changed, 31 insertions(+), 23 deletions(-) rename Dockerfile => travis/Dockerfile (85%) diff --git a/.travis.yml b/.travis.yml index 78e86a8..9c45c45 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,10 +26,16 @@ cache: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ - $HOME/.android/build-cache -install: travis/install_extra_deps.sh -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 +install: if [[ $TRAVIS_OS_NAME != "linux" || $DESKTOP_ONLY != 1 ]]; then travis/install_extra_deps.sh; fi +script: +- | + 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: diff --git a/kiwixbuild/packages.py b/kiwixbuild/packages.py index 2193953..d12ec57 100644 --- a/kiwixbuild/packages.py +++ b/kiwixbuild/packages.py @@ -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'] diff --git a/Dockerfile b/travis/Dockerfile similarity index 85% rename from Dockerfile rename to travis/Dockerfile index 3237c40..acfd551 100644 --- a/Dockerfile +++ b/travis/Dockerfile @@ -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 diff --git a/travis/compile_all.py b/travis/compile_all.py index 6b37c11..afe6879 100755 --- a/travis/compile_all.py +++ b/travis/compile_all.py @@ -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: