From 325c9ce9b39a7695bf217cd92fc36034b2e8207b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Otto=20Kek=C3=A4l=C3=A4inen?= Date: Fri, 17 Nov 2017 12:17:26 +0800 Subject: [PATCH] Travis-CI: slim down the deb build so it passes in the 50 minute time limit The Debian packaging build was failing on Travis-CI due to timeouts. These changes make it faster by skipping less relevant parts of the build, like the test suite, RocksDB, TokuDB and Mroonga. Also fix the usage of the 'make -j' flag to not have any spaces as recommended in an example in the Debian policy. --- .travis.yml | 1 - debian/autobake-deb.sh | 25 +++++++++++++------------ debian/rules | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index da16770e4e7..ce4037ca484 100644 --- a/.travis.yml +++ b/.travis.yml @@ -82,7 +82,6 @@ matrix: - fakeroot script: - ${CC} --version ; ${CXX} --version - - source .travis.compiler.sh # https://github.com/travis-ci/travis-ci/issues/7062 - /run/shm isn't writable or executable # in trusty containers - export MTR_MEM=/tmp diff --git a/debian/autobake-deb.sh b/debian/autobake-deb.sh index d3c825a02b5..b8cf3ee8951 100755 --- a/debian/autobake-deb.sh +++ b/debian/autobake-deb.sh @@ -6,16 +6,11 @@ # Exit immediately on any error set -e -# On Buildbot, don't run the mysql-test-run test suite as part of build. -# It takes a lot of time, and we will do a better test anyway in -# Buildbot, running the test suite from installed .debs on a clean VM. -# On Travis-CI we want to simulate the full build, including tests. -# Also on Travis-CI it is useful not to override the DEB_BUILD_OPTIONS -# at this stage at all. -if [[ ! $TRAVIS ]] -then - export DEB_BUILD_OPTIONS="nocheck" -fi +# This file is invocated from Buildbot and Travis-CI to build deb packages. +# As both of those CI systems have many parallel jobs that include different +# parts of the test suite, we don't need to run the mysql-test-run at all when +# building the deb packages here. +export DEB_BUILD_OPTIONS="nocheck $DEB_BUILD_OPTIONS" # Travis-CI optimizations if [[ $TRAVIS ]] @@ -26,6 +21,12 @@ then # Don't include test suite package on Travis-CI to make the build time shorter sed '/Package: mariadb-test-data/,+28d' -i debian/control sed '/Package: mariadb-test/,+36d' -i debian/control + + # Don't build the test package at all to save time and disk space + sed 's|DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test|DINSTALL_MYSQLTESTDIR=false|' -i debian/rules + + # Also skip building RocksDB and TokuDB to save even more time and disk space + sed 's|-DDEB|-DWITHOUT_TOKUDB_STORAGE_ENGINE=true -DWITHOUT_MROONGA_STORAGE_ENGINE=true -DWITHOUT_ROCKSDB_STORAGE_ENGINE=true -DDEB|' -i debian/rules fi @@ -77,11 +78,11 @@ fi GCCVERSION=$(gcc -dumpversion | sed -e 's/\.\([0-9][0-9]\)/\1/g' -e 's/\.\([0-9]\)/0\1/g' -e 's/^[0-9]\{3,4\}$/&00/') # Don't build rocksdb package if gcc version is less than 4.8 or we are running on # x86 32 bit. -if [[ $GCCVERSION -lt 40800 ]] || [[ $(arch) =~ i[346]86 ]] +if [[ $GCCVERSION -lt 40800 ]] || [[ $(arch) =~ i[346]86 ]] || [[ $TRAVIS ]] then sed '/Package: mariadb-plugin-rocksdb/,+11d' -i debian/control fi -if [[ $GCCVERSION -lt 40800 ]] +if [[ $GCCVERSION -lt 40800 ]] || [[ $TRAVIS ]] then sed '/Package: mariadb-plugin-aws-key-management-10.2/,+13d' -i debian/control fi diff --git a/debian/rules b/debian/rules index cd910b5cc6d..212e2764521 100755 --- a/debian/rules +++ b/debian/rules @@ -32,7 +32,7 @@ CXX := $(DEB_HOST_GNU_TYPE)-g++ # at https://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) - MAKEFLAGS += -j $(NUMJOBS) + MAKEFLAGS += -j$(NUMJOBS) else # NUMJOBS cannot be empty as it is used as a parameter to mtr, default to 1. NUMJOBS = 1