travis: improve build process and expand build matrix
Make a build heriarchy to reduce images size. Add Android Things builds to build matrix. Drop gcc-4 builds, use gcc-5 and gcc-6 instead. Add SonarQube static analysis scans. Signed-off-by: Nicolas Oliver <dario.n.oliver@intel.com>
This commit is contained in:
68
docker/Dockerfile.base
Normal file
68
docker/Dockerfile.base
Normal file
@@ -0,0 +1,68 @@
|
||||
FROM ubuntu:16.04
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Prepare apt-get
|
||||
RUN apt-get update && apt-get -y --no-install-recommends install software-properties-common
|
||||
|
||||
# Add Mraa Repository
|
||||
RUN add-apt-repository ppa:mraa/mraa && \
|
||||
# Update apt-get
|
||||
apt-get -y update && \
|
||||
# Install apt-utils
|
||||
apt-get -y --no-install-recommends install apt-utils && \
|
||||
# Main Build Dependencies
|
||||
apt-get -y --no-install-recommends install git build-essential cmake swig clang-3.8 gcc-5 g++-5 libpthread-stubs0-dev pkg-config wget unzip \
|
||||
# Mraa Build Dependencies
|
||||
libmraa1 libmraa-dev mraa-tools \
|
||||
# Docs Build Dependencies
|
||||
python-sphinx doxygen graphviz \
|
||||
# Sensor Specific Build Dependencies
|
||||
libjpeg-dev
|
||||
|
||||
# Test Build Dependencies
|
||||
RUN apt-get -y --no-install-recommends install python python-dev python-pip && \
|
||||
pip install chardet
|
||||
|
||||
# Install gcc-6 g++-6
|
||||
RUN add-apt-repository ppa:ubuntu-toolchain-r/test && \
|
||||
apt-get update && \
|
||||
apt-get -y --no-install-recommends install gcc-6 g++-6
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
# Install libbacnet 0.3.12
|
||||
RUN wget https://downloads.sourceforge.net/project/bacnet/bacnet-stack/bacnet-stack-0.8.3/bacnet-stack-0.8.3.zip && \
|
||||
unzip -qq bacnet-stack-0.8.3.zip && cd bacnet-stack-0.8.3 && \
|
||||
BACDL_DEFINE=-DBACDL_MSTP=1 MAKE_DEFINE=-fPIC make clean all && \
|
||||
cp /opt/bacnet-stack-0.8.3/lib/libbacnet.a /usr/lib/libbacnet.a && \
|
||||
echo "prefix=/usr" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
echo "exec_prefix=\${prefix}" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
echo "libdir=\${exec_prefix}/lib" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
echo "includedir=\${exec_prefix}/include" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
echo "Name: bacnet" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
echo "Description: BACnet library" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
echo "Version: 0.8.3" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
echo "Libs: -L\${libdir} -lbacnet" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
echo "Cflags: -I\${includedir}/bacnet" >> /usr/lib/pkgconfig/libbacnet.pc && \
|
||||
mkdir /usr/include/bacnet && \
|
||||
cp /opt/bacnet-stack-0.8.3/include/* /usr/include/bacnet/ && \
|
||||
rm -fr /opt/bacnet-stack-0.8.3.zip
|
||||
|
||||
# Install libmodbus 3.1.4
|
||||
RUN wget http://libmodbus.org/releases/libmodbus-3.1.4.tar.gz && \
|
||||
tar xf libmodbus-3.1.4.tar.gz && cd libmodbus-3.1.4 && \
|
||||
./configure && make -j8 && make install && \
|
||||
rm -fr /opt/libmodbus-3.1.4.tar.gz
|
||||
|
||||
# Install openzwave
|
||||
RUN apt-get update && apt-get -y --no-install-recommends install libudev-dev && \
|
||||
git clone --depth 1 https://github.com/OpenZWave/open-zwave.git && cd open-zwave && make -j8 install && \
|
||||
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/openzwave.conf
|
||||
|
||||
# Set Workdir
|
||||
ARG UPM_SRC_DIR=/usr/src/app
|
||||
ENV UPM_SRC_DIR $UPM_SRC_DIR
|
||||
WORKDIR $UPM_SRC_DIR
|
||||
|
||||
CMD bash
|
||||
Reference in New Issue
Block a user