kiwix-build/.travis.yml

158 lines
4.8 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

language: cpp
dist: xenial
sudo: required
services:
- docker
branches:
only:
- master
- /\d+\.\d+\.\d+$/
if: type != push OR tag IS present
stages:
- build_docker_images
- build
- android_build
jobs:
include:
- stage: build_docker_images
script: &build_images
- |
if [ ! $(curl -sflL https://hub.docker.com/v2/repositories/kiwix/kiwix-build_ci/tags/${VARIANT}-${DOCKER_VERSION}) ]
then
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker build -t kiwix-build_ci -f travis/${VARIANT}_builder.dockerfile .
docker tag kiwix-build_ci kiwix/kiwix-build_ci:${VARIANT}-${DOCKER_VERSION}
docker push kiwix/kiwix-build_ci:${VARIANT}-${DOCKER_VERSION}
fi
env: VARIANT=xenial
- stage: build_docker_images
script: *build_images
env: VARIANT=bionic
- stage: build_docker_images
script: *build_images
env: VARIANT=f30
- stage: android_build
env: PLATFORM="android"
if: type != pull_request
- env: PLATFORM="native_dyn"
os: osx
- env: PLATFORM="iOS_arm64"
os: osx
- env: PLATFORM="iOS_i386"
os: osx
before_install:
- PATH=$PATH:${HOME}/bin:${HOME}/.local/bin
- mkdir -p /tmp/private $HOME/EXPORT/BASE /$HOME/.cache $HOME/.gradle/caches
- chmod -R a+wX $HOME/EXPORT $HOME/.cache $HOME/.gradle
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then PATH=$PATH:$(brew --prefix)/opt/gettext/bin; fi
- '[ -n "$encrypted_eba2f7543984_iv" ] && openssl aes-256-cbc
-K $encrypted_eba2f7543984_key -iv $encrypted_eba2f7543984_iv
-in travis/travisci_builder_id_key.enc -out $SSH_KEY -d'
- chmod 600 $SSH_KEY
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
ccache: true
directories:
- $HOME/.cache/pip
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache
install: if [[ $TRAVIS_OS_NAME != "linux" ]]; then travis/install_extra_deps.sh; fi
stage: build
script:
- |
if [[ $TRAVIS_OS_NAME = "linux" ]]
then
VARIANT=xenial
if [[ $DESKTOP_ONLY = 1 ]]; then VARIANT=bionic; fi
if [[ $PLATFORM =~ ^win32_* ]]; then VARIANT=f30; fi
fi
- |
if [[ $TRAVIS_OS_NAME = "linux" ]]
then
docker run --rm \
-e PLATFORM -e NIGHTLY_DATE -e TRAVIS_EVENT_TYPE -e DESKTOP_ONLY -e TRAVIS_TAG \
--device /dev/fuse --cap-add ALL --privileged \
--mount=type=bind,src=$HOME/EXPORT,dst=/home/ci_builder/EXPORT \
--mount=type=bind,src=$HOME/.cache,dst=/home/ci_builder/.cache \
--mount=type=bind,src=$HOME/.gradle/caches,dst=/home/ci_builder/.gradle/caches \
--mount=type=bind,src=$TRAVIS_BUILD_DIR,dst=/home/ci_builder/kiwix-build \
kiwix/kiwix-build_ci:${VARIANT}-${DOCKER_VERSION}
if [[ $PLATFORM = "native_dyn" && $DESKTOP_ONLY = 1 ]]
then
docker run -rm \
-e PLATFORM -e NIGHTLY_DATE -e TRAVIS_EVENT_TYPE -e DESKTOP_ONLY -e TRAVIS_TAG \
--device /dev/fuse --cap-add ALL --privileged \
--mount=type=bind,src=$HOME/EXPORT,dst=/home/ci_builder/EXPORT \
--mount=type=bind,src=$TRAVIS_BUILD_DIR,dst=/home/ci_builder/kiwix-build \
kiwix/kiwix-build_ci:xenial-${DOCKER_VERSION} \
/home/ci_builder/kiwix-build/scripts/create_kiwix-desktop_appImage.sh /home/ci_builder/EXPORT/AppDir
fi
fi
- if [[ $TRAVIS_OS_NAME != "linux" ]]; then python3 travis/compile_all.py; fi
after_success:
- travis/upload_base_deps.sh
after_failure:
- travis/upload_base_deps.sh
- travis/upload_all_log.sh
deploy:
- provider: script
skip_cleanup: true
script: travis/deploy.sh
on:
tags: true
condition: $TRAVIS_BUILD_STAGE_NAME != "Build_docker_images"
- provider: script
skip_cleanup: true
script: travis/deploy.sh
on:
branch: master
condition: $TRAVIS_BUILD_STAGE_NAME != "Build_docker_images" && $TRAVIS_EVENT_TYPE = cron
env:
global:
- NIGHTLY_DATE=$(date +%Y-%m-%d)
- SSH_KEY=/tmp/private/travisci_builder_id_key
- DOCKER_VERSION=3
matrix:
- PLATFORM="flatpak" DESKTOP_ONLY=1
- PLATFORM="native_dyn"
- PLATFORM="native_static"
- PLATFORM="native_mixed"
- PLATFORM="armhf_dyn"
- PLATFORM="armhf_static"
- PLATFORM="win32_dyn"
- PLATFORM="win32_static"
- PLATFORM="i586_dyn"
- PLATFORM="i586_static"
- PLATFORM="native_dyn" DESKTOP_ONLY=1
- PLATFORM="android_arm"
- PLATFORM="android_arm64"
- PLATFORM="android_x86"
- PLATFORM="android_x86_64"
addons:
ssh_known_hosts:
- download.kiwix.org
- tmp.kiwix.org
- download.openzim.org
notifications:
irc:
channels:
- "chat.freenode.net#kiwix"
on_success: change
on_failure: always
email:
recipients:
- contact@kiwix.org
- mgautier@kymeria.fr
on_success: change
on_failure: always