Skip to content

Commit cf0e5f6

Browse files
committed
[Travis] bump Qt to 5.9 (#6355)
* bump Qt to 5.9 and SIP to 4.19.7 by using coming Bionic as base Docker image for dependencies * automatically build QGIS Docker image on cron jobs
1 parent 50fa2d0 commit cf0e5f6

9 files changed

+112
-69
lines changed

.ci/travis/linux/before_script.sh

+27-7
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,44 @@ set -e
1717

1818
pushd .docker
1919

20-
echo "travis_fold:start:docker"
20+
echo "travis_fold:start:travis_env"
21+
echo "${bold}${endbold}"
22+
echo "TRAVIS_BRANCH $TRAVIS_BRANCH"
23+
echo "TRAVIS_EVENT_TYPE $TRAVIS_EVENT_TYPE"
24+
echo "DOCKER_TAG $DOCKER_TAG"
25+
echo "DOCKER_DEPS_PUSH $DOCKER_DEPS_PUSH"
26+
echo "DOCKER_DEPS_IMAGE_REBUILD $DOCKER_DEPS_IMAGE_REBUILD"
27+
echo "DOCKER_QGIS_IMAGE_BUILD_PUSH $DOCKER_QGIS_IMAGE_BUILD_PUSH"
28+
echo "QGIS_LAST_BUILD_SUCCESS $QGIS_LAST_BUILD_SUCCESS"
29+
echo "travis_fold:end:travis_env"
30+
31+
32+
echo "travis_fold:start:docker_build"
33+
echo "${bold}Docker build deps${endbold}"
2134
docker --version
22-
docker-compose --version
23-
docker-compose -f $DOCKER_COMPOSE config
24-
#docker pull ubuntu:16.04
35+
if [[ $DOCKER_QGIS_IMAGE_BUILD_PUSH =~ false ]]; then
36+
docker-compose --version
37+
docker-compose -f $DOCKER_COMPOSE config
38+
fi
39+
2540
docker pull "qgis/qgis3-build-deps:${DOCKER_TAG}" || true
2641
if [[ $DOCKER_DEPS_IMAGE_REBUILD =~ true ]]; then
2742
docker build --no-cache -t "qgis/qgis3-build-deps:${DOCKER_TAG}" .
2843
else
29-
docker build --cache-from "qgis/qgis3-build-deps:${DOCKER_TAG}" -t "qgis/qgis3-build-deps:${DOCKER_TAG}" .
44+
docker build --cache-from "qgis/qgis3-build-deps:${DOCKER_TAG}" -t "qgis/qgis3-build-deps:${DOCKER_TAG}" -f qgis3-build-deps.dockerfile .
3045
fi
31-
echo "travis_fold:end:docker"
46+
echo "travis_fold:end:docker_build"
47+
48+
echo "travis_fold:start:docker_push"
49+
echo "${bold}Docker push deps${endbold}"
3250
# image should be pushed even if QGIS build fails
3351
# but push is achieved only on branches (not for PRs)
34-
if [[ $DOCKER_PUSH =~ true ]]; then
52+
if [[ $DOCKER_DEPS_PUSH =~ true ]]; then
53+
echo "push to qgis/qgis3-build-deps:${DOCKER_TAG}"
3554
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
3655
#docker tag "qgis/qgis3-build-deps:${DOCKER_TAG}" "qgis/qgis3-build-deps:latest"
3756
docker push "qgis/qgis3-build-deps:${DOCKER_TAG}"
3857
fi
58+
echo "travis_fold:end:docker_push"
3959

4060
popd

.ci/travis/linux/docker-build-test.sh

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ echo "travis_fold:start:cmake"
3939
echo "${bold}Running cmake...${endbold}"
4040
cmake \
4141
-GNinja \
42+
-DWITH_3D=ON \
4243
-DWITH_STAGED_PLUGINS=ON \
4344
-DWITH_GRASS=OFF \
4445
-DSUPPRESS_QT_WARNINGS=ON \

.ci/travis/linux/script.sh

+17-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,23 @@
1515

1616
set -e
1717

18-
DIR=$(git rev-parse --show-toplevel)/.docker
18+
1919

2020
mkdir -p $CCACHE_DIR
2121

22-
docker-compose -f $DOCKER_COMPOSE run --rm qgis-deps
22+
if [[ $DOCKER_QGIS_IMAGE_BUILD_PUSH =~ true ]]; then
23+
DIR=$(git rev-parse --show-toplevel)/.docker
24+
pushd ${DIR}
25+
echo "${bold}Building QGIS Docker image '${DOCKER_TAG}'...${endbold}"
26+
docker build --build-arg CACHE_DIR=/root/.ccache \
27+
--build-arg DOCKER_TAG=${DOCKER_TAG} \
28+
--cache-from "qgis/qgis:${DOCKER_TAG}" \
29+
-t "qgis/qgis:${DOCKER_TAG}" \
30+
-f qgis.dockerfile ..
31+
echo "${bold}Pushing image to docker hub...${endbold}"
32+
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
33+
docker push "qgis/qgis:${DOCKER_TAG}"
34+
popd
35+
else
36+
docker-compose -f $DOCKER_COMPOSE run --rm qgis-deps
37+
fi

.docker/Dockerfile-build-test

-10
This file was deleted.

.docker/qgis.dockerfile

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
# CACHE_TAG is provided by Docker cloud
3+
# see https://docs.docker.com/docker-cloud/builds/advanced/
4+
# using ARG in FROM requires min v17.05.0-ce
5+
ARG DOCKER_TAG=latest
6+
ARG CACHE_DIR
7+
8+
FROM qgis/qgis3-build-deps:${DOCKER_TAG}
9+
MAINTAINER Denis Rouzaud <denis@opengis.ch>
10+
11+
ENV CC=/usr/lib/ccache/clang
12+
ENV CXX=/usr/lib/ccache/clang++
13+
ENV QT_SELECT=5
14+
ENV LANG=C.UTF-8
15+
16+
COPY . /usr/src/QGIS
17+
18+
COPY ${CACHE_DIR} /root/.ccache
19+
ENV CCACHE_DIR=/root/.ccache
20+
RUN ccache -M 1G
21+
22+
WORKDIR /usr/src/QGIS/build
23+
24+
RUN cmake \
25+
-GNinja \
26+
-DCMAKE_BUILD_TYPE=Release \
27+
-DCMAKE_INSTALL_PREFIX=/usr \
28+
-DWITH_DESKTOP=OFF \
29+
-DWITH_SERVER=ON \
30+
-DWITH_3D=ON \
31+
-DWITH_BINDINGS=ON \
32+
-DBINDINGS_GLOBAL_INSTALL=ON \
33+
-DWITH_STAGED_PLUGINS=ON \
34+
-DWITH_GRASS=ON \
35+
-DSUPPRESS_QT_WARNINGS=ON \
36+
-DDISABLE_DEPRECATED=ON \
37+
-DENABLE_TESTS=OFF \
38+
-DWITH_QSPATIALITE=ON \
39+
-DWITH_QWTPOLAR=OFF \
40+
-DWITH_APIDOC=OFF \
41+
-DWITH_ASTYLE=OFF \
42+
.. \
43+
&& ninja install \
44+
&& rm -rf /usr/src/QGIS
45+
46+
WORKDIR /

.docker/Dockerfile renamed to .docker/qgis3-build-deps.dockerfile

+14-8
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
FROM ubuntu:16.04
2-
MAINTAINER Denis Rouzaud <denis.rouzaud@gmail.com>
1+
FROM ubuntu:18.04
2+
MAINTAINER Denis Rouzaud <denis@opengis.ch>
33

44
LABEL Description="Docker container with QGIS dependencies" Vendor="QGIS.org" Version="1.0"
55

6+
# && echo "deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu xenial main" >> /etc/apt/sources.list \
7+
# && echo "deb-src http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu xenial main" >> /etc/apt/sources.list \
8+
# && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 314DF160 \
9+
610
RUN apt-get update \
711
&& apt-get install -y software-properties-common \
8-
&& add-apt-repository ppa:ubuntugis/ubuntugis-unstable \
912
&& apt-get update \
1013
&& apt-get install -y \
1114
bison \
1215
ca-certificates \
1316
ccache \
1417
clang \
15-
# cmake \
18+
cmake \
1619
curl \
1720
dh-python \
1821
flex \
@@ -29,6 +32,7 @@ RUN apt-get update \
2932
libproj-dev \
3033
libqca-qt5-2-dev \
3134
libqca-qt5-2-plugins \
35+
libqt53drender5 \
3236
libqt5opengl5-dev \
3337
libqt5scintilla2-dev \
3438
libqt5sql5-sqlite \
@@ -66,6 +70,11 @@ RUN apt-get update \
6670
python3-sip-dev \
6771
python3-termcolor \
6872
python3-yaml \
73+
qt3d5-dev \
74+
qt3d-assimpsceneimport-plugin \
75+
qt3d-defaultgeometryloader-plugin \
76+
qt3d-gltfsceneio-plugin \
77+
qt3d-scene2d-plugin \
6978
qt5keychain-dev \
7079
qtbase5-dev \
7180
qtpositioning5-dev \
@@ -88,10 +97,7 @@ RUN apt-get update \
8897
future \
8998
termcolor \
9099
&& apt-get autoremove -y python3-pip python2.7 \
91-
&& apt-get clean \
92-
&& curl -s -S -O https://cmake.org/files/v3.10/cmake-3.10.1-Linux-x86_64.tar.gz \
93-
&& tar --strip-components=1 -zx -f cmake-3.10.1-Linux-x86_64.tar.gz -C /usr/local \
94-
&& rm cmake-3.10.1-Linux-x86_64.tar.gz
100+
&& apt-get clean
95101

96102
RUN echo "alias python=python3" >> ~/.bash_aliases
97103

.travis.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@ matrix:
99
- TRAVIS_CONFIG=linux
1010
- DOCKER_COMPOSE=${TRAVIS_BUILD_DIR}/.docker/docker-compose.travis.yml
1111
- DOCKER_TAG=$( [[ $TRAVIS_REPO_SLUG =~ qgis/QGIS ]] && echo $TRAVIS_BRANCH | sed 's/master/latest/' || echo "latest" )
12-
- DOCKER_PUSH=$( [[ $TRAVIS_REPO_SLUG =~ qgis/QGIS ]] && [[ $TRAVIS_PULL_REQUEST =~ false ]] && echo "true" || echo "false" )
12+
- DOCKER_DEPS_PUSH=$( [[ $TRAVIS_REPO_SLUG =~ qgis/QGIS ]] && [[ $TRAVIS_EVENT_TYPE =~ push ]] && echo "true" || echo "false" )
1313
- DOCKER_DEPS_IMAGE_REBUILD=$( [[ $TRAVIS_COMMIT_MESSAGE =~ '[docker] update dependencies' ]] && echo "true" || echo "false" )
14+
# on cron job, QGIS image is built and push without testing
15+
- DOCKER_QGIS_IMAGE_BUILD_PUSH=$( [[ $TRAVIS_REPO_SLUG =~ qgis/QGIS ]] && [[ $TRAVIS_EVENT_TYPE =~ cron ]] && echo "true" || echo "false" )
16+
- QGIS_LAST_BUILD_SUCCESS=true # TODO use API to know if last build succeed https://developer.travis-ci.com/resource/builds
1417
- CCACHE_DIR=${HOME}/.ccache
1518
dist: trusty
1619
sudo: false

Dockerfile

-38
This file was deleted.

tests/src/python/test_qgsdistancearea.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -600,18 +600,18 @@ def testFormatDistance(self):
600600
self.assertEqual(QgsDistanceArea.formatDistance(1.5, 3, QgsUnitTypes.DistanceKilometers, False), '1.500 km')
601601
self.assertEqual(QgsDistanceArea.formatDistance(0.5, 3, QgsUnitTypes.DistanceKilometers, True), '0.500 km')
602602
self.assertEqual(QgsDistanceArea.formatDistance(0.5, 3, QgsUnitTypes.DistanceKilometers, False), '500.000 m')
603-
self.assertEqual(QgsDistanceArea.formatDistance(6000, 0, QgsUnitTypes.DistanceFeet, True), '6,000 ft')
603+
self.assertEqual(QgsDistanceArea.formatDistance(6000, 0, QgsUnitTypes.DistanceFeet, True), '6000 ft')
604604
self.assertEqual(QgsDistanceArea.formatDistance(6000, 3, QgsUnitTypes.DistanceFeet, False), '1.136 mi')
605605
self.assertEqual(QgsDistanceArea.formatDistance(300, 0, QgsUnitTypes.DistanceFeet, True), '300 ft')
606606
self.assertEqual(QgsDistanceArea.formatDistance(300, 0, QgsUnitTypes.DistanceFeet, False), '300 ft')
607-
self.assertEqual(QgsDistanceArea.formatDistance(3000, 0, QgsUnitTypes.DistanceYards, True), '3,000 yd')
607+
self.assertEqual(QgsDistanceArea.formatDistance(3000, 0, QgsUnitTypes.DistanceYards, True), '3000 yd')
608608
self.assertEqual(QgsDistanceArea.formatDistance(3000, 3, QgsUnitTypes.DistanceYards, False), '1.705 mi')
609609
self.assertEqual(QgsDistanceArea.formatDistance(300, 0, QgsUnitTypes.DistanceYards, True), '300 yd')
610610
self.assertEqual(QgsDistanceArea.formatDistance(300, 0, QgsUnitTypes.DistanceYards, False), '300 yd')
611611
self.assertEqual(QgsDistanceArea.formatDistance(1.5, 3, QgsUnitTypes.DistanceMiles, True), '1.500 mi')
612612
self.assertEqual(QgsDistanceArea.formatDistance(1.5, 3, QgsUnitTypes.DistanceMiles, False), '1.500 mi')
613613
self.assertEqual(QgsDistanceArea.formatDistance(0.5, 3, QgsUnitTypes.DistanceMiles, True), '0.500 mi')
614-
self.assertEqual(QgsDistanceArea.formatDistance(0.5, 0, QgsUnitTypes.DistanceMiles, False), '2,640 ft')
614+
self.assertEqual(QgsDistanceArea.formatDistance(0.5, 0, QgsUnitTypes.DistanceMiles, False), '2640 ft')
615615
self.assertEqual(QgsDistanceArea.formatDistance(0.5, 1, QgsUnitTypes.DistanceNauticalMiles, True), '0.5 NM')
616616
self.assertEqual(QgsDistanceArea.formatDistance(0.5, 1, QgsUnitTypes.DistanceNauticalMiles, False), '0.5 NM')
617617
self.assertEqual(QgsDistanceArea.formatDistance(1.5, 1, QgsUnitTypes.DistanceNauticalMiles, True), '1.5 NM')

0 commit comments

Comments
 (0)