diff --git a/.travis.yml b/.travis.yml index 4d2edd7..c58e7e0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: cpp + dist: trusty sudo: required branches: @@ -6,8 +7,11 @@ branches: - master - /\d+\.\d+\.\d+$/ if: type != push OR tag IS present + before_install: -- eval "${MATRIX_EVAL}" +- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then eval "${MATRIX_EVAL}"; fi +- PATH=$PATH:${HOME}/bin +- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then PATH=$PATH:$(brew --prefix)/opt/gettext/bin; fi - ${CXX} --version - openssl aes-256-cbc -K $encrypted_eba2f7543984_key -iv $encrypted_eba2f7543984_iv -in travis/travisci_builder_id_key.enc -out travis/travisci_builder_id_key -d @@ -66,6 +70,8 @@ matrix: if: type!=cron AND type!=pull_request - env: PLATFORM="android_mips64" if: type!=cron AND type!=pull_request + - env: PLATFORM="native_dyn" + os: osx notifications: irc: diff --git a/travis/compile_all.py b/travis/compile_all.py index 3f43196..72f7f78 100755 --- a/travis/compile_all.py +++ b/travis/compile_all.py @@ -14,6 +14,7 @@ from urllib.error import URLError from kiwixbuild import dependency_versions PLATFORM = environ['PLATFORM'] +TRAVIS_OS_NAME = environ['TRAVIS_OS_NAME'] def home(): return Path(os.path.expanduser('~')) @@ -111,7 +112,8 @@ def make_archive(project, platform): def make_deps_archive(target, full=False): (BASE_DIR/'.install_packages_ok').unlink() - archive_name = "deps_{}_{}.tar.gz".format(PLATFORM, target) + archive_name = "deps_{}_{}_{}.tar.gz".format( + TRAVIS_OS_NAME, PLATFORM, target) files_to_archive = [BASE_DIR/'INSTALL'] files_to_archive += BASE_DIR.glob('**/android-ndk*') if (BASE_DIR/'meson_cross_file.txt').exists(): @@ -159,7 +161,8 @@ make_release = re.fullmatch(r"[0-9]+\.[0-9]+\.[0-9]+", environ.get('TRAVIS_TAG', # The first thing we need to do is to (potentially) download already compiled base dependencies. BASE_DEP_VERSION = dependency_versions.base_deps_meta_version -base_dep_archive_name = "base_deps_{}_{}.tar.gz".format(PLATFORM, BASE_DEP_VERSION) +base_dep_archive_name = "base_deps_{}_{}_{}.tar.gz".format( + TRAVIS_OS_NAME, PLATFORM, BASE_DEP_VERSION) print("--- Getting archive {} ---".format(base_dep_archive_name), flush=True) try: @@ -183,7 +186,10 @@ if environ['TRAVIS_EVENT_TYPE'] != 'cron' and not make_release: if PLATFORM.startswith('android'): TARGETS = ('kiwix-android',) elif PLATFORM.startswith('native_'): - TARGETS = ('kiwix-tools', 'zim-tools', 'zimwriterfs') + if TRAVIS_OS_NAME == "osx": + TARGETS = ('kiwix-lib', ) + else: + TARGETS = ('kiwix-tools', 'zim-tools', 'zimwriterfs') else: TARGETS = ('kiwix-tools', ) @@ -201,7 +207,10 @@ if PLATFORM.startswith('android'): else: TARGETS = ('libzim', 'kiwix-lib', 'kiwix-android') elif PLATFORM.startswith('native_'): - TARGETS = ('libzim', 'zimwriterfs', 'zim-tools', 'kiwix-lib', 'kiwix-tools') + if TRAVIS_OS_NAME == "osx": + TARGETS = ('libzim', 'zimwriterfs', 'zim-tools', 'kiwix-lib') + else: + TARGETS = ('libzim', 'zimwriterfs', 'zim-tools', 'kiwix-lib', 'kiwix-tools') else: TARGETS = ('libzim', 'kiwix-lib', 'kiwix-tools') diff --git a/travis/install_extra_deps.sh b/travis/install_extra_deps.sh index f9e8489..2b58f2b 100755 --- a/travis/install_extra_deps.sh +++ b/travis/install_extra_deps.sh @@ -2,13 +2,24 @@ set -e -pip3 install --user --upgrade pip wheel -pip3 install --user pillow +if [[ "$TRAVIS_OS_NAME" == "osx" ]] +then + brew update + brew upgrade python3 + pip3 install pillow + pip3 install . -pip3 install --user . + wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-mac.zip + unzip ninja-mac.zip ninja +else + pip3 install --user --upgrade pip wheel + pip3 install --user pillow + pip3 install --user . -# ninja -wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip -unzip ninja-linux.zip ninja + wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip + unzip ninja-linux.zip ninja +fi + +mkdir -p $HOME/bin cp ninja $HOME/bin