From ab623b7176d623ca3d259a87790e62000626a685 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Mon, 10 Apr 2017 14:23:03 +0200 Subject: [PATCH] Add TravisCI. Now the project is build on every PR using TravisCI. The project dependencies are get from the archive generated by kiwix-build. --- .travis.yml | 17 ++++++++++ travis/compile.sh | 36 ++++++++++++++++++++ travis/install_deps.sh | 51 +++++++++++++++++++++++++++++ travis/travisci_builder_id_key.enc | Bin 0 -> 3248 bytes travis/travisci_builder_id_key.pub | 1 + 5 files changed, 105 insertions(+) create mode 100644 .travis.yml create mode 100755 travis/compile.sh create mode 100755 travis/install_deps.sh create mode 100644 travis/travisci_builder_id_key.enc create mode 100644 travis/travisci_builder_id_key.pub diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..3e6cfd7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,17 @@ +language: cpp +dist: trusty +sudo: required +before_install: +- openssl aes-256-cbc -K $encrypted_03ff56ac6b2e_key -iv $encrypted_03ff56ac6b2e_iv + -in travis/travisci_builder_id_key.enc -out travis/travisci_builder_id_key -d +- chmod 600 travis/travisci_builder_id_key +cache: ccache +install: travis/install_deps.sh +script: travis/compile.sh +env: +- PLATFORM="native_static" +- PLATFORM="native_dyn" +- PLATFORM="win32_static" +- PLATFORM="win32_dyn" +addons: + ssh_known_hosts: download.kiwix.org diff --git a/travis/compile.sh b/travis/compile.sh new file mode 100755 index 0000000..798ece2 --- /dev/null +++ b/travis/compile.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +set -e + +BUILD_DIR=${HOME}/BUILD_${PLATFORM} +INSTALL_DIR=${BUILD_DIR}/INSTALL + + +case ${PLATFORM} in + "native_static") + MESON_OPTION="--default-library=static" + ;; + "native_dyn") + MESON_OPTION="--default-library=shared" + ;; + "win32_static") + MESON_OPTION="--default-library=static --cross-file ${BUILD_DIR}/meson_cross_file.txt" + ;; + "win32_dyn") + MESON_OPTION="--default-library=shared --cross-file ${BUILD_DIR}/meson_cross_file.txt" + ;; + "android_arm") + MESON_OPTION="-Dandroid=true --default-library=shared --cross-file ${BUILD_DIR}/meson_cross_file.txt" + ;; + "android_arm64") + MESON_OPTION="-Dandroid=true --default-library=shared --cross-file ${BUILD_DIR}/meson_cross_file.txt" + ;; + +esac + +cd ${TRAVIS_BUILD_DIR} +export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/x86_64-linux-gnu/pkgconfig +export PATH=${INSTALL_DIR}/bin:$PATH +meson . build -Dctpp2-install-prefix=${INSTALL_DIR} ${MESON_OPTION} +cd build +ninja diff --git a/travis/install_deps.sh b/travis/install_deps.sh new file mode 100755 index 0000000..aabe2c6 --- /dev/null +++ b/travis/install_deps.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +set -e + + +REPO_NAME=${TRAVIS_REPO_SLUG#*/} +ARCHIVE_NAME=deps_${PLATFORM}_${REPO_NAME}.tar.gz +SSH_KEY=${TRAVIS_BUILD_DIR}/travis/travisci_builder_id_key + + +# Packages. +case ${PLATFORM} in + "native_static") + PACKAGES="gcc cmake libbz2-dev ccache zlib1g-dev uuid-dev libctpp2-dev" + ;; + "native_dyn") + PACKAGES="gcc cmake libbz2-dev ccache zlib1g-dev uuid-dev libctpp2-dev libmicrohttpd-dev" + ;; + "win32_static") + PACKAGES="g++-mingw-w64-i686 gcc-mingw-w64-i686 gcc-mingw-w64-base mingw-w64-tools ccache" + ;; + "win32_dyn") + PACKAGES="g++-mingw-w64-i686 gcc-mingw-w64-i686 gcc-mingw-w64-base mingw-w64-tools ccache" + ;; + "android_arm") + PACKAGES="gcc cmake ccache" + ;; + "android_arm64") + PACKAGES="gcc cmake ccache" + ;; +esac + +sudo apt-get update -qq +sudo apt-get install -qq python3-pip ${PACKAGES} +pip3 install meson + +# Ninja +cd $HOME +git clone git://github.com/ninja-build/ninja.git +cd ninja +git checkout release +./configure.py --bootstrap +sudo cp ninja /bin + + +# Dependencies comming from kiwix-build. +cd ${HOME} +scp -v -p -i ${SSH_KEY} nightlybot@download.kiwix.org:~/travis_deps/${ARCHIVE_NAME} . +mkdir -p BUILD_${PLATFORM} +cd BUILD_${PLATFORM} +tar xf ${HOME}/${ARCHIVE_NAME} diff --git a/travis/travisci_builder_id_key.enc b/travis/travisci_builder_id_key.enc new file mode 100644 index 0000000000000000000000000000000000000000..1ad1277c1d8c4e8d8b1340e0207ac2613109332e GIT binary patch literal 3248 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 literal 0 HcmV?d00001 diff --git a/travis/travisci_builder_id_key.pub b/travis/travisci_builder_id_key.pub new file mode 100644 index 0000000..12e88a2 --- /dev/null +++ b/travis/travisci_builder_id_key.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCWxcsEawR4TrXmGgMXXOhuYjXtO1V/BpEQ2tuf2tTiloZ0n1cPtxeLp3ic7F91p/e+58U1QlpLkxs9Ia0REXvr2ppd3FuIRjADs6g9iqK4jgAx/KKVjy2vhtxFtDKP5xCkbqSRjDcYnSZwrllEPbsOEIgTvRBaOyyqBNbctjSN6DhB+hY1bsPNJntDL0/XLqSYFXBnxd+unRLiItRJX1C42tpTwWyr9OvpjuPCjWVo/6WqohU8xjW29xPDpmAnWCX02JD//hRamJ+zfDPxf5AGTVJhk7of4Jjj4pTunhTXRLGhA3UBPApbI//NA2nAOc8feOchu1VfO6n5JuVbnXDzUlMFVqSNJ6ihYBTEczN+T/xbdc3Uyzi3JZX7IW2lH1YpxJoGEzJ67HjNPHdKgQzqVGlKl00qUrL1aMJ+1rOm8xDvPYVjHidORPUn0x+2fvxJ0VVr4crVwmTa23ft79MS2sLbw5DbPkURVUkEH88nSwcbF9fbuCPE4RL15NS7ZNwDqRMyQIxnAe7Sf+UWz45HxTrdvgjrsk0PCYX+KCgnXEexXWDDlbXWuiJa1h2VhKb2zM3AUmtRMK0pFTi/xCrFFwDIYYIBOMxMb0nYmruv5Feh/cez1FNYq9+UKrnBAV7DAZCLibM2/u46OAgbbtZS70zaX1JvcX44yUgjpClNcQ== TravisCIBuilder