aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml148
1 files changed, 82 insertions, 66 deletions
diff --git a/.travis.yml b/.travis.yml
index 83ec65f89..50b3b9c27 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -33,112 +33,128 @@ env:
# you need generated new one at https://codecov.io specific for your repo.
- CODECOV_TOKEN=8e1c0fd8-62ff-411e-a79f-5839f6662c11
-matrix:
- include:
- - compiler: gcc
- addons:
- apt:
- sources:
- - ubuntu-toolchain-r-test
- packages:
- - gcc
- env: MY_CF="-O0 -coverage" MY_LDF="--coverage" DOCOV=1
- - compiler: clang
- addons:
+addons:
apt:
- sources:
- - ubuntu-toolchain-r-test
- - llvm-toolchain-precise-3.8
- packages:
- - clang-3.8
+ sources:
+ - ubuntu-toolchain-r-test
+ - llvm-toolchain-precise-3.8
+ packages:
+ - gcc
+ - clang-3.8
+ - automake autoconf autoconf-archive libtool libssl-dev graphviz mscgen doxygen
+ - libpcap-dev
+# coverity_scan:
+# project:
+# name: "$TRAVIS_REPO_SLUG"
+# notification_email: xxxx
+# build_command_prepend: "./bootstrap && ./configure --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example"
+# build_command: "make"
+# branch_pattern: coverity_scan
-before_install:
+compiler:
+ - gcc
+ - clang-3.8
+
+env:
+ - CONF=""
+ - CONF="--disable-abi-compat"
+ - CONF="--enable-schedule-sp"
+ - CONF="--enable-schedule-iquery"
+
+install:
- echo 1000 | sudo tee /proc/sys/vm/nr_hugepages
- sudo mkdir -p /mnt/huge
- sudo mount -t hugetlbfs nodev /mnt/huge
- sudo apt-get -qq update
- - sudo apt-get install automake autoconf libtool libssl-dev graphviz mscgen doxygen
- - sudo apt-get install libpcap-dev linux-headers-`uname -r`
+ - sudo apt-get install linux-headers-`uname -r`
- sudo pip install coverage
- gem install asciidoctor
- PATH=${PATH//:\.\/node_modules\/\.bin/}
- - if [ "$CC" = "clang" ]; then export CXX="clang++-3.8" CC="clang-3.8" LD="clang-3.8"; fi
# Install cunit for the validation tests because distro version is too old and fails C99 compile
- sudo apt-get remove libcunit1-dev libcunit1
- export CUNIT_VERSION=2.1-3
- curl -sSOL https://github.com/Linaro/libcunit/releases/download/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2
- tar -jxf *.bz2
- - cd CUnit*
+ - pushd CUnit*
- ./bootstrap
- ./configure --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test
- make
- sudo make install
- - cd ..
+ - popd
- export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
# DPDK pktio
- TARGET=${TARGET:-"x86_64-native-linuxapp-gcc"}
- - git -c advice.detachedHead=false clone -q --depth=1 --single-branch --branch=v16.07 http://dpdk.org/git/dpdk dpdk
+ - git -c advice.detachedHead=false clone -q --depth=1 --single-branch --branch=v17.02 http://dpdk.org/git/dpdk dpdk
- pushd dpdk
- git log --oneline --decorate
- make config T=${TARGET} O=${TARGET}
- pushd ${TARGET}
- sed -ri 's,(CONFIG_RTE_LIBRTE_PMD_PCAP=).*,\1y,' .config
- popd
- - make install T=${TARGET} EXTRA_CFLAGS="-fPIC" > /dev/null
+ - make install T=${TARGET} EXTRA_CFLAGS="-fPIC"
- popd
# Netmap pktio
- - sudo apt-get source linux-image-$(uname -r) > /dev/null
- - KSRC="$PWD/`find . -name kernel-parameters.txt | cut -d / -f 2 `"
- git -c advice.detachedHead=false clone -q --depth=1 --single-branch --branch=v11.2 https://github.com/luigirizzo/netmap.git
- pushd netmap/LINUX
- - ./configure --kernel-sources=$KSRC
- - make > /dev/null
+ - ./configure
+ - make
- sudo insmod ./netmap.ko
- popd
script:
- - echo $TRAVIS_COMMIT_RANGE
- - ODP_PACHES=`echo $TRAVIS_COMMIT_RANGE | sed 's/\.//'`
-# Generate patches provided with $TRAVIS_COMMIT_RANGE.
-# In case of force push and range is broken validate only the latest commit if it's not merge commit.
- - git format-patch $ODP_PACHES;
- if [ $? -ne 0 ]; then
- git show --summary HEAD| grep -q '^Merge:';
- if [ $? -ne 0 ]; then
- git format-patch HEAD^;
- perl ./scripts/checkpatch.pl *.patch;
- fi;
- else
- perl ./scripts/checkpatch.pl *.patch;
- fi
-
- ./bootstrap
- - ./configure
-# doxygen does not trap on warnings, check for them here.
- - make doxygen-doc |tee doxygen.log
- - fgrep -rvq warning ./doxygen.log
- - make distcheck
-
- - ./bootstrap
- - ./configure --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example --with-dpdk-path=`pwd`/dpdk/${TARGET} --with-netmap-path=`pwd`/netmap CFLAGS="$MY_CF" CXXFLAGS="$MY_CF" LDFLAGS="$MY_LDF"
- - make -j 4
+ - ./configure --prefix=$HOME/odp-install --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example --with-dpdk-path=`pwd`/dpdk/${TARGET} --with-netmap-path=`pwd`/netmap $CONF
+ - make -j $(nproc)
- sudo LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" make check
- - sudo rm -rf dpdk
- - sudo rm -rf netmap
- - sudo rm -rf $KSRC
+ - make install
-after_success:
- - if [ -n "$DOCOV" ]; then find . -type f -iname '*.[ch]' -not -path ".git/*" -execdir gcov {} \; ; bash <(curl -s https://codecov.io/bash) -X coveragepy; fi
+ - echo "Checking linking and run from install..."
+ - pushd $HOME
+ - echo "Dynamic link.."
+ - ${CC} ${OLDPWD}/example/hello/odp_hello.c -o odp_hello_inst -I${HOME}/odp-install/include -L${HOME}/odp-install/lib -lodp-linux -L${OLDPWD}/dpdk/x86_64-native-linuxapp-gcc/lib -lrt -ldpdk -lpthread -lcrypto -lpcap -ldl
+ - LD_LIBRARY_PATH="${HOME}/odp-install/lib:$LD_LIBRARY_PATH" ./odp_hello_inst
+ - echo "Static link.."
+ - ${CC} ${OLDPWD}/example/hello/odp_hello.c -o odp_hello_inst -I${HOME}/odp-install/include -L${HOME}/odp-install/lib -lodp-linux -L${OLDPWD}/dpdk/x86_64-native-linuxapp-gcc/lib -lrt -ldpdk -lpthread -lcrypto -lpcap -ldl -static
+ - ./odp_hello_inst
-addons:
- coverity_scan:
- project:
- name: "$TRAVIS_REPO_SLUG"
- notification_email: xxxx
- build_command_prepend: "./bootstrap && ./configure --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example"
- build_command: "make"
- branch_pattern: coverity_scan
+jobs:
+ include:
+ - stage: test
+ env: TEST=coverage
+ compiler: gcc
+ script:
+ - ./bootstrap
+ - ./configure --prefix=$HOME/odp-install --enable-test-cpp --enable-test-vald --enable-test-helper --enable-test-perf --enable-user-guides --enable-test-perf-proc --enable-test-example --with-dpdk-path=`pwd`/dpdk/${TARGET} --with-netmap-path=`pwd`/netmap CFLAGS="-O0 -coverage" CXXFLAGS="-O0 -coverage" LDFLAGS="--coverage"
+ - sudo LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" PATH=${PATH//:\.\/node_modules\/\.bin/} make check
+ - find . -type f -iname '*.[ch]' -not -path ".git/*" -execdir gcov {} \; ; bash <(curl -s https://codecov.io/bash) -X coveragepy
+ - stage: test
+ env: TEST=distcheck
+ compiler: gcc
+ script:
+ - ./bootstrap
+ - ./configure
+ - sudo LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH" make distcheck
+ - stage: test
+ env: TEST=doxygen
+ compiler: gcc
+ script:
+ # doxygen does not trap on warnings, check for them here.
+ - ./bootstrap
+ - ./configure
+ - make doxygen-doc |tee doxygen.log
+ - fgrep -rvq warning ./doxygen.log
+ - stage: test
+ env: TEST=checkpatch
+ compiler: gcc
+ script:
+ - echo ${TRAVIS_COMMIT_RANGE};
+ - ODP_PATCHES=`echo ${TRAVIS_COMMIT_RANGE} | sed 's/\.//'`;
+ - if [ -z "${ODP_PATCHES}" ]; then env; exit 1; fi;
+ - ./scripts/ci-checkpatches.sh ${ODP_PATCHES};
+
+after_failure:
+ - find . -name 'test-suite.log' -execdir grep -il "FAILED" {} \; -exec echo {} \; -exec cat {} \;