146 lines
4.1 KiB
Bash
Executable File
146 lines
4.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
BASE_DIR="BUILD_${PLATFORM}"
|
|
NIGHTLY_ARCHIVES_DIR=${HOME}/NIGHTLY_ARCHIVES
|
|
RELEASE_ARCHIVES_DIR=${HOME}/RELEASE_ARCHIVES
|
|
SSH_KEY=${TRAVIS_BUILD_DIR}/travis/travisci_builder_id_key
|
|
|
|
mkdir -p ${NIGHTLY_ARCHIVES_DIR}
|
|
mkdir -p ${RELEASE_ARCHIVES_DIR}
|
|
|
|
function make_archive {
|
|
if [[ "$MAKE_RELEASE" == "0" ]]
|
|
then
|
|
ARCHIVE_PATH="${NIGHTLY_ARCHIVES_DIR}/${1}_$(date +%Y-%m-%d).tar.gz"
|
|
else
|
|
ARCHIVE_PATH="${RELEASE_ARCHIVES_DIR}/${1}-${TRAVIS_TAG}.tar.gz"
|
|
fi
|
|
(
|
|
cd ${BASE_DIR}/INSTALL/bin
|
|
tar -czf "${ARCHIVE_PATH}" $2
|
|
)
|
|
}
|
|
|
|
cd ${HOME}
|
|
|
|
if [[ $TRAVIS_TAG =~ ^[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+ ]]
|
|
then
|
|
MAKE_RELEASE=1
|
|
else
|
|
MAKE_RELEASE=0
|
|
fi
|
|
|
|
if [[ "$TRAVIS_EVENT_TYPE" == "cron" || "$MAKE_RELEASE" == "1" ]]
|
|
then
|
|
if [[ ${PLATFORM} = android* ]]
|
|
then
|
|
TARGETS="libzim kiwix-lib kiwix-android"
|
|
elif [[ ${PLATFORM} =~ native_* ]]
|
|
then
|
|
TARGETS="libzim zimwriterfs zim-tools kiwix-lib kiwix-tools"
|
|
else
|
|
TARGETS="libzim kiwix-lib kiwix-tools"
|
|
fi
|
|
|
|
for TARGET in ${TARGETS}
|
|
do
|
|
echo $TARGET
|
|
if [[ "$TRAVIS_EVENT_TYPE" == "cron" ]]
|
|
then
|
|
${TRAVIS_BUILD_DIR}/kiwix-build.py \
|
|
--target-platform $PLATFORM \
|
|
--build-deps-only \
|
|
--hide-progress \
|
|
${TARGET}
|
|
rm ${BASE_DIR}/.install_packages_ok
|
|
|
|
(
|
|
cd ${BASE_DIR}
|
|
if [ -f meson_cross_file.txt ]
|
|
then
|
|
MESON_FILE=meson_cross_file.txt
|
|
fi
|
|
ANDROID_NDK_DIR=$(find . -name "android-ndk*")
|
|
ARCHIVE_NAME="deps_${PLATFORM}_${TARGET}.tar.gz"
|
|
|
|
cat <<EOF > manifest.txt
|
|
${ARCHIVE_NAME}
|
|
*********************************
|
|
|
|
Dependencies archive for ${TARGET} on platform ${PLATFORM}
|
|
Generated at $(date)
|
|
EOF
|
|
|
|
tar -czf ${ARCHIVE_NAME} INSTALL manifest.txt ${MESON_FILE} ${ANDROID_NDK_DIR}
|
|
scp -i ${SSH_KEY} ${ARCHIVE_NAME} nightlybot@download.kiwix.org:/var/www/tmp.kiwix.org/ci/
|
|
)
|
|
fi
|
|
|
|
if [[ "$MAKE_RELEASE" == "1" ]]
|
|
then
|
|
${TRAVIS_BUILD_DIR}/kiwix-build.py \
|
|
--hide-progress \
|
|
--make-release \
|
|
--target-platform $PLATFORM ${TARGET}
|
|
if [[ "$PLATFORM" == "native_dyn" ]]
|
|
then
|
|
${TRAVIS_BUILD_DIR}/kiwix-build.py \
|
|
--hide-progress \
|
|
--make-release \
|
|
--make-dist \
|
|
--target-platform $PLATFORM ${TARGET}
|
|
fi
|
|
else
|
|
${TRAVIS_BUILD_DIR}/kiwix-build.py \
|
|
--hide-progress \
|
|
--target-platform $PLATFORM ${TARGET}
|
|
fi
|
|
rm ${BASE_DIR}/.install_packages_ok
|
|
done
|
|
|
|
# We have build every thing. Now create archives for public deployement.
|
|
case ${PLATFORM} in
|
|
native_dyn)
|
|
#[TODO] Copy archive somewhere
|
|
#scp ${BASE_DIR}/${TARGET}/${TARGET}-${TARGET-version}.tar.gz ${SOMEWHERE}
|
|
;;
|
|
native_static)
|
|
make_archive kiwix-tools_linux64 "kiwix-install kiwix-manage kiwix-read kiwix-search kiwix-serve"
|
|
make_archive zim-tools_linux64 "zimbench zimdump zimsearch zimdiff zimpatch zimsplit"
|
|
make_archive zimwriterfs_linux64 "zimwriterfs"
|
|
;;
|
|
win32_static)
|
|
make_archive kiwix-tools_win32 "kiwix-install.exe kiwix-manage.exe kiwix-read.exe kiwix-search.exe kiwix-serve.exe"
|
|
;;
|
|
armhf_static)
|
|
make_archive kiwix-tools_armhf "kiwix-install kiwix-manage kiwix-read kiwix-search kiwix-serve"
|
|
;;
|
|
android_*)
|
|
APK_NAME="kiwix-${PLATFORM}"
|
|
cp ${BASE_DIR}/kiwix-android/app/build/outputs/apk/kiwix/release/app-kiwix-debug.apk ${NIGHTLY_ARCHIVES_DIR}/${APK_NAME}-debug.apk
|
|
cp ${BASE_DIR}/kiwix-android/app/build/outputs/apk/kiwix/release/app-kiwix-release-unsigned.apk ${NIGHTLY_ARCHIVES_DIR}/${APK_NAME}-release-unsigned.apk
|
|
;;
|
|
esac
|
|
|
|
else
|
|
# No a cron job, we just have to build to be sure nothing is broken.
|
|
if [[ ${PLATFORM} = android* ]]
|
|
then
|
|
TARGETS="kiwix-android"
|
|
elif [[ ${PLATFORM} =~ native_* ]]
|
|
then
|
|
TARGETS="kiwix-tools zim-tools zimwriterfs"
|
|
else
|
|
TARGETS="kiwix-tools"
|
|
fi
|
|
for TARGET in ${TARGETS}
|
|
do
|
|
${TRAVIS_BUILD_DIR}/kiwix-build.py \
|
|
--target-platform $PLATFORM \
|
|
--hide-progress \
|
|
${TARGET}
|
|
done
|
|
fi
|