From 01f8cec612046557ab4bdf0e79d62c6831d4312a Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 2 Mar 2018 09:58:48 +0100 Subject: [PATCH] Accelerate builds by detecting number of processors --- .gitlab-ci.yml | 56 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 95b054f44..4ab84a2f5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -66,7 +66,9 @@ debian8.10: - apt-get install -y --no-install-recommends build-essential libtool automake libhdf5-dev cmake git ca-certificates libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libgtest-dev - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -79,7 +81,9 @@ debian9.3: - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -92,7 +96,9 @@ debian9.3-i386: - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - cd build - cmake -DENABLE_PACKAGING=ON -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -105,7 +111,9 @@ debian10: - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -123,7 +131,9 @@ ubuntu14.04: - apt-get install -y --no-install-recommends build-essential libtool automake libhdf5-dev cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libgtest-dev - cd build - cmake .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -136,7 +146,9 @@ ubuntu16.04: - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev libgtest-dev - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -149,7 +161,9 @@ ubuntu18.04: - apt-get install -y --no-install-recommends build-essential cmake git libboost-dev libboost-date-time-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-serialization-dev liblog4cpp5-dev gnuradio-dev gr-osmosdr libblas-dev liblapack-dev libarmadillo-dev libgflags-dev libgoogle-glog-dev libgnutls-openssl-dev python-mako python-six libmatio-dev googletest - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install allow_failure: true @@ -164,7 +178,9 @@ fedora26: - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel gnutls-devel openssl-devel python-mako python-six matio-devel - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -178,7 +194,9 @@ fedora27: - yum install -y make automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel gnutls-devel openssl-devel python-mako python-six matio-devel - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -192,7 +210,9 @@ fedora-rawhide: - yum install -y automake gcc gcc-c++ kernel-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel blas-devel lapack-devel armadillo-devel gflags-devel glog-devel gnutls-devel openssl-devel python-mako python-six matio-devel - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install allow_failure: true @@ -208,7 +228,9 @@ archlinux: - pacman -S --noconfirm cmake git boost boost-libs log4cpp libvolk gnuradio gnuradio-osmosdr blas lapack gflags google-glog gnutls openssl python2-mako python2-six libmatio gtest - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install allow_failure: true @@ -226,7 +248,9 @@ centos7: - yum install -y make automake gcc gcc-c++ kernel-devel libtool hdf5-devel cmake git boost-devel boost-date-time boost-system boost-filesystem boost-thread boost-chrono boost-serialization log4cpp-devel gnuradio-devel gr-osmosdr-devel blas-devel lapack-devel armadillo-devel gnutls-devel openssl-devel python-mako python-six - cd build - cmake -DENABLE_OSMOSDR=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) - make check - make install @@ -261,7 +285,9 @@ run-tests: - mkdir build64 - cd build-test - cmake -DENABLE_SYSTEM_TESTING_EXTRA=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) # Execute Unit Tests - ../install/run_tests --gtest_output=xml - mv *.xml ../build64/ @@ -287,7 +313,9 @@ run-tests-i386: - mkdir build32 - cd build-test - cmake -DENABLE_PACKAGING=ON -DENABLE_SYSTEM_TESTING_EXTRA=ON .. - - make -j2 + - grep -c ^processor /proc/cpuinfo + - export NPROC=$(grep -c ^processor /proc/cpuinfo) + - make -j$(($NPROC+1)) # Execute Unit Tests - ../install/run_tests --gtest_output=xml - mv *.xml ../build32/