mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
This allows faster builds of the Docker images on cron jobs by fixing the caching on Travis (it has a distinct cache than the standard testing builds) To get the cache, it has to be stored on some point in a docker image. To avoid image size increase, a second build is done with removing the cache and build information and using squash builds (currently an experimental feature of Docker).
178 lines
6.0 KiB
YAML
178 lines
6.0 KiB
YAML
language: python # This lets us use newer python versions from virtualenv
|
|
python: "3.7"
|
|
compiler: clang
|
|
dist: bionic
|
|
sudo: false
|
|
cache:
|
|
apt: true
|
|
pip: true
|
|
directories:
|
|
- ${HOME}/.ccache_testing
|
|
- ${HOME}/.ccache_docker_build_disco
|
|
- ${HOME}/.ccache_docker_build_bionic
|
|
timeout: 1000
|
|
if: NOT branch =~ /^(cherry-pick-)?backport-\d+-/ AND NOT branch =~ /-patch-\d+$/
|
|
|
|
env:
|
|
global:
|
|
- TRAVIS_TIMESTAMP=$(date +%s)
|
|
- TRAVIS_AVAILABLE_TIME=150 # in minutes
|
|
- TRAVIS_UPLOAD_TIME=5 # time considered to start the machine and the container (minutes)
|
|
# Docker hub username and password
|
|
- secure: "b7eMDIolaAnq1voGKC1ez7Kcf+/A0WZDJEHBvNwk2KubBfrGOE83GMDrFNF4NqjIprqIAvVKj+TrX1ckCvs24re3IqUJo71TaF1IgxzDDPwSsmNh5UMmvZkeiJys9bWjqDO9wYR5ietNmIE18qyMc8ToJk8oKm6AXuAG2n6znmM="
|
|
- secure: "PHCp7F3nApp38Mz6b4/OLxgfBiikRGzPQDHg3R5LX+SQOll24c/DMtwpPwizNuFEiCFcRmJ9uc1t0HWEerIZe5uqm7AtE/nMXBsvDZ+hj4Tz/fEBF98a1k4WLYheN1exFidVkJgdAeiwMOOUQXw5KuIX62bxBdzsdcd0QGwxiXo="
|
|
# Travis Token to create PyQGIS Documentation Travis build after Docker push
|
|
- secure: "bKJnk+GatxJItCWpC8gJs9N0bEbwK1TrIzTLgnXsl9vwqQLLhIfUMa40yj06HsbVY07AOdmr1+Wk5t+DKGf8YkaaFWBB1tIG8G/T0naN9vfWeBTEd7TlmV5a9ldEPcr6pjfi0he7/RDalvlPvDauEFKL28aVFd2BAe2Tj1euGpY="
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
include:
|
|
|
|
##########################################################
|
|
#
|
|
# TESTS FOR STANDARD COMMITS
|
|
#
|
|
##########################################################
|
|
|
|
##########################################################
|
|
# QGIS TESTS ON BIONIC
|
|
##########################################################
|
|
- os: linux
|
|
name: building and testing on linux 🍳
|
|
if: type != cron
|
|
services: docker
|
|
env:
|
|
- TRAVIS_CONFIG=linux
|
|
- CCACHE_DIR=${HOME}/.ccache_testing
|
|
- DOCKER_TAG=$( [[ $TRAVIS_REPO_SLUG =~ qgis/QGIS ]] && echo $TRAVIS_BRANCH | sed 's/master/latest/' || echo "latest" )
|
|
- DOCKER_BUILD_DEPS_FILE=qgis3-build-deps.dockerfile
|
|
# Label ID can be found here https://api.github.com/repos/qgis/QGIS/labels
|
|
- RUN_FLAKY_TESTS=$(.ci/travis/scripts/pr_has_label.py $TRAVIS_PULL_REQUEST 1271248184)
|
|
|
|
##########################################################
|
|
# CODE LAYOUT
|
|
##########################################################
|
|
- os: linux
|
|
name: code layout 👗
|
|
if: type != cron
|
|
env:
|
|
- TRAVIS_CONFIG=code_layout
|
|
addons:
|
|
apt:
|
|
sources:
|
|
# - sourceline: 'ppa:jonathonf/backports' # silversearcher-ag backport
|
|
packages:
|
|
- doxygen
|
|
- graphviz
|
|
- txt2tags
|
|
- pkg-config
|
|
- xvfb
|
|
- flip
|
|
# used for spell checks
|
|
- perl # sipify, lookahead regex in spell check script
|
|
- silversearcher-ag
|
|
- expect-dev # unbuffer
|
|
- coreutils
|
|
# dependencies for licensecheck
|
|
- cpanminus
|
|
- libyaml-tiny-perl
|
|
- libio-socket-ssl-perl
|
|
- libhttp-date-perl
|
|
- libgetopt-long-descriptive-perl
|
|
- libmoo-perl
|
|
- libnamespace-clean-perl
|
|
- libpath-tiny-perl
|
|
- libpod-constants-perl
|
|
- libscalar-list-utils-perl
|
|
- libsort-key-perl
|
|
- libstrictures-perl
|
|
- libstring-escape-perl
|
|
- libtry-tiny-perl
|
|
|
|
|
|
|
|
##########################################################
|
|
#
|
|
# DOCKER IMAGE BUILD JOBS ON CRON OR TAG
|
|
#
|
|
##########################################################
|
|
|
|
|
|
##########################################################
|
|
# BIONIC DOCKER BUILD ON CRON OR TAG
|
|
##########################################################
|
|
- os: linux
|
|
name: bionic docker build 🐳
|
|
if: repo = qgis/QGIS AND (tag IS PRESENT OR type = cron)
|
|
services: docker
|
|
sudo: required # required to restart Docker Daemon with experimental features
|
|
env:
|
|
- TRAVIS_CONFIG=docker_image
|
|
- CCACHE_DIR=${HOME}/.ccache_docker_build_bionic
|
|
- TRIGGER_PYQGIS_DOC=FALSE
|
|
- DOCKER_TAG=$( echo $TRAVIS_BRANCH | sed 's/master/latest/' )
|
|
- DOCKER_BUILD_DEPS_FILE=qgis3-build-deps.dockerfile
|
|
- CC=/usr/lib/ccache/clang
|
|
- CXX=/usr/lib/ccache/clang++
|
|
|
|
##########################################################
|
|
# DISCO DOCKER BUILD ON CRON OR TAG
|
|
##########################################################
|
|
- os: linux
|
|
name: disco docker build 💃
|
|
if: repo = qgis/QGIS AND (tag IS PRESENT OR type = cron)
|
|
services: docker
|
|
sudo: required # required to restart Docker Daemon with experimental features
|
|
env:
|
|
- TRAVIS_CONFIG=docker_image
|
|
- CCACHE_DIR=${HOME}/.ccache_docker_build_disco
|
|
- TRIGGER_PYQGIS_DOC=TRUE
|
|
- DOCKER_TAG="$( echo $TRAVIS_BRANCH | sed 's/master/latest/' )_disco"
|
|
- DOCKER_BUILD_DEPS_FILE=qgis3-build-deps-disco.dockerfile
|
|
- CC=/usr/lib/ccache/gcc
|
|
- CXX=/usr/lib/ccache/g++ # Building SIP binding freezes with Clang in Docker, maybe a SIP issue, maybe not
|
|
|
|
|
|
|
|
# OSX based build with QT4 and Python 2
|
|
# - os: osx
|
|
# osx_image: xcode8.3 # MacOS 10.12: Sierra
|
|
# cache:
|
|
# pip: true
|
|
# directories:
|
|
# - $HOME/.ccache
|
|
# env:
|
|
# - TRAVIS_CONFIG=macos
|
|
# - IGNORE_BUILD_FAILURES=YES
|
|
#
|
|
# allow_failures:
|
|
# - os: osx
|
|
|
|
git:
|
|
depth: 120
|
|
|
|
notifications:
|
|
irc: "chat.freenode.net#qgis-test"
|
|
on_failure: change
|
|
on_success: change
|
|
skip_join: true
|
|
|
|
webhooks:
|
|
urls:
|
|
- https://webhooks.gitter.im/e/467e3aff72e344d1dae3
|
|
on_success: change # options: [always|never|change] default: always
|
|
on_failure: always # options: [always|never|change] default: always
|
|
on_start: never # default: never
|
|
|
|
before_install:
|
|
- ./.ci/travis/${TRAVIS_CONFIG}/before_install.sh
|
|
|
|
install:
|
|
- ./.ci/travis/${TRAVIS_CONFIG}/install.sh
|
|
|
|
before_script:
|
|
- ./.ci/travis/${TRAVIS_CONFIG}/before_script.sh
|
|
|
|
script:
|
|
- ./.ci/travis/${TRAVIS_CONFIG}/script.sh
|